WordPressのPHPテンプレートの中でショートコードを呼び出す方法を紹介します。
PHPにショートコードを入力してもうまくいかない
PHPテンプレートの中に次のようにショートコードを入力するかもしれません。
このショートコードは機能せず、そのまま表示されてしまいます。
PHP内のショートコードにはdo_shortcodeを使う
PHPの中にショートコードを入力する場合は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"]'); ?>