2024年06月13日
WP関数:add_shortcode()
この関数の説明
WP関数の add_shortcode() は、ショートコードと、ショートコードが指定された時のコールバック関数を定義します。
投稿文書中にあるショートコードに対応するPHPを実行する時に利用します。
関数
add_shortcode( $shortcode , $func )
パラメータ
$shortcode(文字列)(必須)
投稿の本文から検索するショートコード
$func(関数名)(必須)
ショートコードが見つかった時に実行するコールバック関数
戻り値
この関数は値を返しません。
事例
1.単純なケース(引数がない場合)
①本文中にショートコードを記述します。
【s_code01】
メモ
上記の【】は[](角括弧)です。
[]の中で使える文字は下記になります。
①英数小文字
②_(アンダーバー)
②上記のショートコードを処理するプログラムをfunctions.phpに記述します。
function sumple01(){
return 'ショートコードを実行しました';
}
add_shortcode('s_code01','sumple01');
又は
function sumple01(){
ob_start(); // バッファスタート
echo 'ショートコードを実行しました'; // バッファへの書き込み
return ob_get_clean(); // コールバック関数終了時に出力
}
add_shortcode('s_code01','sumple01');
③文書が表示される時にショートコードの所でファンクションが実行され下記が表示されます。
ショートコードを実行しました
2.指定したphpファイルを読み込んで実行する(引数がある場合)
①本文中にショートコードを記述します。
【load_sample file='/javascript/animation/show_hide/fade'】
メモ
上記の【】は[](角括弧)です。
ショートコードが「load_sample」で引数が「file='/javascript/animation/show_hide/fade'」です。
尚、引数は連想配列(キー+データ)として関数に渡されます。
②上記のショートコードを処理するプログラムをfunctions.phpに記述します。
function get_php($atts) {
ob_start(); // バッファリングスタート
get_template_part("/sample/$atts[file]"); // sampleフォルダにある指定ファイルを読み込む
return ob_get_clean(); // add_shortcode完了時に上記関数を実行する
}
add_shortcode('load_sample', 'get_php');
メモ
3行目で読み込まれるファイルは「sample\javascript\animation\show_hide\fade.php」です。
又、上記で読み込まれるPHPファイルには下記が定義されています。
<button type='button' class='next06' style='padding:5px 10px;'>次へ</button>
<div class='slide_target' style='position:relative;margin-top:5px;'>
<img class='img_item06' style='width:300px;position:absolute;top:0;left:0;' src='https://nw2.mywire.org/wp-content/uploads/2020/12/crown.jpg'>
<img class='img_item06' style='width:300px;position:absolute;top:0;left:0;' src='https://nw2.mywire.org/wp-content/uploads/2020/12/alphard.jpg'>
<img class='img_item06' style='width:300px;position:absolute;top:0;left:0;' src='https://nw2.mywire.org/wp-content/uploads/2020/12/86.jpg'>
<img class='img_item06' style='width:300px;position:absolute;top:0;left:0;' src='https://nw2.mywire.org/wp-content/uploads/2021/12/supra.jpg'>
</div>
<script>
$(function(){
var slide_no = 0;
$('.img_item06').css('display' , 'none'); // 画像を総て非表示にする
$('.img_item06').eq(slide_no).css('display' , 'block');// 先頭の画像を表示する
$('.next06').click(function(){
$('.img_item06').eq(slide_no).hide('fade',2000);// 現在の画像をフェードで非表示(2秒)
slide_no = slide_no + 1;
if(slide_no >= 4){slide_no = 0}
$('.img_item06').eq(slide_no).show('fade',2000);// 次の画像をはフェードで表示(2秒)
});
});
</script>
上記のショートコードが実行された結果は下記になります。
| Warning: include_once(/sample//javascript/animation/show_hide/fade): Failed to open stream: No such file or directory in /volume1/web/school/wp-content/themes/my_template/functions.php on line 44 Warning: include_once(): Failed opening '/sample//javascript/animation/show_hide/fade' for inclusion (include_path='.:/usr/share/pear') in /volume1/web/school/wp-content/themes/my_template/functions.php on line 44 |