WordPressのPHPでショートコードを呼び出す方法

WordPressのPHPテンプレートの中でショートコードを呼び出す方法を紹介します。

PHPにショートコードを入力してもうまくいかない

PHPテンプレートの中に次のようにショートコードを入力するかもしれません。

テンプレートにショートコードを入力
テンプレートにショートコードを入力

このショートコードは機能せず、そのまま表示されてしまいます。

ショートコードが機能しない
ショートコードが機能しない

PHP内のショートコードにはdo_shortcodeを使う

PHPの中にショートコードを入力する場合はdo_shortcodeという関数を使います。

テンプレート内のショートコードにはdo_shortcodeを使う
テンプレート内のショートコードにはdo_shortcodeを使う

入力したコードは次のようになります。

<?php echo do_shortcode('[contact-form-7 404 "Not Found"]'); ?>

これにより、ショートコードが機能するようになります。

ショートコードが機能する
ショートコードが機能する

do_shortcodeのポイント

do_shortcodeを使うときのポイントは次のとおりです。

do_shortcodeの書式は次のとおりで、指定したショートコードが実行されます。

do_shortcode(ショートコード)

文字でショートコードを指定する場合は次のようになります。ショートコードを半角のシングルクォーテーション「’」またはダブルクォーテーション「”」で囲みます。

do_shortcode('ショートコード'); ?>

実際の使用例は次のようになります。

do_shortcode('[contact-form-7 404 "Not Found"]')

ショートコード内で「”」で囲まれた文字がある場合、ショートコードは「’」で囲む必要があります。その逆も同じです。

つまり、次のような記述はエラーになります。すべての記号が「”」のため、何の開始・終了の目印なのか区別できないからです。

do_shortcode("[contact-form-7 404 "Not Found"]")

do_shortcodeで呼び出すショートコードから何も表示されない場合は「echo」を付けてみましょう。echoは文字を画面に表示する命令です。

echo do_shortcode('[contact-form-7 404 "Not Found"]');

また、テンプレート内に上記のコードを書く場合、PHPの開始・終了タグが必要になるでしょう。これでecho do_shortcodeを使ったショートコード呼び出しは完了です。

<?php echo do_shortcode('[contact-form-7 404 "Not Found"]'); ?>
スポンサーリンク

PHP・WordPress修正サポートのご案内

PHP修正サポートへの問い合わせ

PHP修正サポートへのお問い合わせはこちらからお願いします。

PHPの基礎が身に付いたかチェック!

PHP「直す力」養成ドリル