WordPress では、記事や固定ページ内で [shortcode]
のように記述することで機能を呼び出せる「ショートコード」が用意されています。これをテーマファイル(例:single.php
や page.php
)内で直接呼び出したいケースもあります。その際は do_shortcode()
関数を利用します。
基本的な使い方
<?php
echo do_shortcode('');
?>
このように書くと、記事内に書いたときと同じようにショートコードが処理され、ギャラリーが表示されます。
変数を渡してショートコードを呼び出す
PHP 内で変数を使いたい場合は、文字列連結でショートコードを組み立てます。
<?php
$post_id = get_the_ID();
echo do_shortcode('エラー: コンタクトフォームが見つかりません。
');
?>
ショートコードの出力を変数に代入する
do_shortcode()
は文字列を返すため、一度変数に代入して整形してから出力することもできます。
<?php
$content = do_shortcode('[my_shortcode param="value"]');
echo '<div class="shortcode-wrapper">' . $content . '</div>';
?>
関数内でショートコードを利用する
テーマの関数にショートコードを組み込みたいときも、同様に do_shortcode()
を呼び出せます。
<?php
function my_theme_shortcode_output() {
return do_shortcode('[recent-posts]');
}
?>
まとめ
do_shortcode('[shortcode]')
を使えばテーマ内から呼び出せる- 変数を埋め込みたいときは文字列連結で組み立てる
- 返り値は文字列なので、ラップ用の HTML と組み合わせて使うと便利
ショートコードをテーマ内から呼び出せば、管理画面から入力するだけでなく、PHP テンプレート上でも柔軟に再利用できます。