【WordPress】PHPコードを本文にショートコードを使って埋め込む方法を解説します

独自のショートコード作成の基本的な方法

functions.php に以下のようなコードを記入することにより使えるようになります。

function shortcode_sample_1() {
  return '<p>これは文字列だけを出力します</p>';
}
add_shortcode( 'hogehoge', 'shortcode_sample_1' );

以下のように、投稿画面に [hogehoge]と記述することによりショートコードの内容を表示することができます。

add_shortcode( 'hogehoge', 'shortcode_sample_1' );

「add_shortcode」の部分の引数については以下の意味合いがあります。

  1. 第一引数(hogehoge) → ショートコードの名前
  2. 第二引数(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内に記入する処理は、外部ファイルを読み込むだけの専用関数を作って活用する

参考サイト

テーマのディレクトリー構造
├ 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>
タイトルとURLをコピーしました