ショートコードの作り方
基本のショートコード
<?php
// functioins.phpに記述
function my_func() {
$text = 'Hollow World';
return $text;
}
add_shortcode('test','my_func');
?>
上記のような簡単な記述であれば、「return」ではなく「echo」などでも動くが、値としてやりとりする方が利用用途が増えるので「return」が無難。
ショートコードに引数を渡す
ここでは、ショートコードに引数を渡す。その際、デフォルト値を設定できる、必要なければ「”」にする。
<?php
function my_func($atts) {
//引数のデフォルト値を設定
extract($atts = shortcode_atts(array(
'title' => '',//初期値
'text' => array(),//配列で渡す
), $atts));
//今回はdiv ul liで表示
if($title){
$title = '<p>'.$title.'</p>';
}
$box = '<div>';
$box .= $title;
$box .= '<ul>';
// テキストを分割し配列に入れ直し、foreachでli表示
$text_box = array();
if ($text && $text != 'all') {
$text_box = explode(',', $text); //カンマで分割して配列に入れ直す
}
foreach($text_box as $value){
$box .= '<li>'.$value.'</li>';
}
$box .= '</ul></div>';
//出力
return $box;
}
add_shortcode('test2', 'my_func');
?>
テンプレートファイルでショートコードを使う
<?php
echo do_shortcode('[ショートコードの文字列]');
?>