WordPress | ショートコードの登録から複数の引数の受け渡し方法
記事内、カテゴリページやウィジェットでPHPなんかを動かしたい時に利用できるショートコードの使い方です。
ショートコードの登録
WordPressのショートコードを登録する関数add_shortcode()
を利用します。
今回はサンプルとしてmyFunction()
というPHP関数をtestという名前で新規ショートコードとして登録しまてみす。
function myFunction(){
ob_start();
echo 'HELLO WordPress';
return ob_get_clean();
}
// ショートコードの登録
add_shortcode('test', 'myFunction');
add_shortcode()
は第一引数にショートコード名、第二引数に実行する関数名を指定します。
サンプルコードの例ではtest
というショートコード名が呼び出された時、myFunction()
が実行されるようになっています。
ショートコードの使い方
記事内、カテゴリページやウィジェット内で登録したショートコードを使う(登録してあるPHP関数を呼び出す)記述です。
[test]
登録されていないショートコード名だった場合はそのまま表示されます。
※ウィジェット内でショートコードを使える様にするには「functions.php」に以下を記述しておく必要があります。
// ウィジェットでショートコードを有効化
add_filter('widget_text', 'do_shortcode');
ショートコードから引数を送る
ショートコードから実行する関数に引数を送る場合は以下の様に記述します。因数にはキー名と値を指定します。
[test keyname="こんにちわ"]
ショートコードの関数で引数を受け取る際のシンプルな関数を用意してみます。引数は配列として受け取り格納されている事に注意してください。
function myFunction($data){
ob_start();
echo $data[keyname];
return ob_get_clean();
}
// ショートコードの登録
add_shortcode('test', 'myFunction');
このままだとキー名が違っていたり、値が空だった場合にPHPエラーとなるので、空だった場合のデフォルト値を指定します。
※キー名に大文字は使えないので注意です。
function myFunction($data){
ob_start();
extract(shortcode_atts(array(
'keyname' => 'デフォルト値',
), $data));
echo $keyname;
return ob_get_clean();
}
// ショートコードの登録
add_shortcode('test', 'myFunction');
ショートコードから複数の引数を送る
ショートコードから複数の引数を送信する記述です。半角スペースで開けてキー名と値を指定していきます。
[test keyname1="こんにちわ" keyname2="こんばんわ"]
関数で複数の引数を受け取る場合の記述は以下の様になります。
function myFunction($data){
ob_start();
extract(shortcode_atts(array(
'keyname1' => 'デフォルト値1',
'keyname2' => 'デフォルト値2',
), $data));
echo $keyname1.$keyname2;
return ob_get_clean();
}
// ショートコードの登録
add_shortcode('test', 'myFunction');
ディスカッション
コメント一覧
まだ、コメントがありません