【WordPress】テーマのPHPからショートコードを呼び出す方法

【WordPress】テーマのPHPからショートコードを呼び出す方法 WordPress

WordPress では、記事や固定ページ内で [shortcode] のように記述することで機能を呼び出せる「ショートコード」が用意されています。これをテーマファイル(例:single.phppage.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 テンプレート上でも柔軟に再利用できます。