WordPress ショートコードでテンプレートを出力する

本文エリア等ショートコードが利用可能な場所で予め用意したテンプレートファイルを呼び出して出力するショートコード

テンプレート内容を出力するショートコード

ショートコード

/**
 * ショートコードでテンプレートを出力する
 * [get_template_part arg1='content' arg2='loop']
 */
function sc_get_template_part($atts)
{
    //配列($atts)から変数($arg1,$arg2)を作成する
    extract(
        shortcode_atts(
            array(
                'arg1' => '',
                'arg2' => '',
            ),
            $atts
        )
    );

    //
    ob_start();                        //バッファリング開始
    get_template_part( $arg1, $arg2 ); //テンプレートを呼び出し出力
    $html = ob_get_contents();         //変数に代入
    ob_end_clean();                    //バッファリング終了

    //
    return $html;
}
add_shortcode( 'get_template_part', 'sc_get_template_part' );

使い方

テーマディレクトリ以下に用意したテンプレートファイル templates/parts/links.php を出力する場合以下のように本文エリアなどショートコードが利用可能なところに記述して利用します。

[get_template_part arg1="templates/parts/links"]

templates/parts/links-new.php を出力したい場合は、以下のように記述します。

[get_template_part arg1="templates/parts/links" arg2="new"]

動作環境情報

エックスサーバー(x10)
PHP 7.4.13
MySQL 5.7
WordPress 5.7.1

コメント

タイトルとURLをコピーしました