独自のショートコード作成の基本的な方法
functions.php に以下のようなコードを記入することにより使えるようになります。
function shortcode_sample_1() {
return '<p>これは文字列だけを出力します</p>';
}
add_shortcode( 'hogehoge', 'shortcode_sample_1' );
以下のように、投稿画面に [hogehoge]と記述することによりショートコードの内容を表示することができます。
add_shortcode( 'hogehoge', 'shortcode_sample_1' );
「add_shortcode」の部分の引数については以下の意味合いがあります。
- 第一引数(hogehoge) → ショートコードの名前
- 第二引数(shortcode_sample_1) → 処理を記述する関数名
いろいろなショートコードの方法
function price_func( $atts ) {
$atts = shortcode_atts(
array(
'price' => '100', //初期値
'price2' => '200', //初期値
), $atts, 'total' );
return 'price: ' .$atts['price'] * 1.1 . ' price2 : ' . $atts['price2'] * 1.1 ;
}
add_shortcode( 'total', 'price_func' );
投稿画面等で、[total price=1000 price2=1500] の場合は、
出力結果 → price : 1100 price2 : 1650
投稿画面等で、[total price=1000 ] の場合は、
出力結果 → price : 1100 price2 : 220
ショートコードを外部ファイルを読み込んで作成する方法
functions.php内に記入する処理は、外部ファイルを読み込むだけの専用関数を作って活用する
参考サイト
- 関数リファレンス/shortcode atts – WordPress Codex 日本語版
- PHP: ob_start – Manual
- PHP: ob_get_clean – Manual
- PHP: extract – Manual
- WordPressにショートコードを使ってPHPを埋め込む方法
テーマのディレクトリー構造
├ fucntions.php
└ files
├ banana.php // 外部ファイル
├ apple.php // 外部ファイル
└ orange.php // 外部ファイル
/**
* 外部ファイルを読み込む専用関数.
* @param array 読み込む外部ファイル名(拡張子なし)を値に持つ連想配列(keyはfile).
**/
function custom_func($args) {
// $file変数を配列からインポートする
extract(shortcode_atts(array('file' => 'default'), $args));
// 出力バッファリングを有効化する
ob_start();
// 外部ファイルを読み込む
get_template_part("$file");
// 出力バッファを削除する
return ob_get_clean();
}
/** banana.phpを使うショートコード用関数. */
function banana_func() {
return custom_func(['file' => 'files/banana']);
}
add_shortcode('banana', 'banana_func');
/** apple.phpを使うショートコード用関数. */
function apple_func() {
return custom_func(['file' => 'files/apple']);
}
add_shortcode('apple', 'apple_func');
/** orange.phpを使うショートコード用関数. */
function orange_func() {
return custom_func(['file' => 'files/orange']);
}
add_shortcode('orange', 'orange_func');
<p><?php echo 'バナナ大好き'; ?><p>