WordPress個別サポート

WordPressでテンプレートの中にショートコードを入力したいこともあります。活用法はさまざまですが、たとえば、すべての記事の下にContact Form 7の問い合わせフォームを表示することもできるので非常に便利です。

すべての記事の下にContact Form 7の問い合わせフォームを表示

ショートコードを使って記事下にContact Form 7の問い合わせフォームを表示

「テンプレート ショートコード」でネット検索すると「do_shortcode」という命令が見つかるかもしれませんが、PHPに慣れていないと編集がうまくいかないこともあります。その仕組みを含めて使い方を簡単に紹介します。

スポンサーリンク

テンプレートに入力したショートコードがそのまま表示される

すべての記事の下にお問い合わせフォームを表示したい場合、個別記事テンプレート(single.phpなど)のthe_contentの下あたりに、おなじみのContact Form 7のショートコードを入力することを思い付くかもしれません。

ところが、テンプレート内で次のようにショートコードを入力してもうまくいきません。

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

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

ショートコードがそのまま表示されてしまいます。

ショートコードがそのまま表示される

ショートコードがそのまま表示される

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

テンプレートの中でショートコードを使いたい場合、do_shortcodeという命令を使います。次のようなイメージです。

<?php
echo do_shortcode('ここにショートコードを入力');
?>

1行にまとめても大丈夫です。

<?php echo do_shortcode('ここにショートコードを入力'); ?>

基本的にショートコードはシングルクォーテーションの' と ' の間に入力します。Contact Form 7のショートコードで使うイメージは次のようになります。

Contact Form 7のショートコードに適用

Contact Form 7のショートコードに適用

これで、お問い合わせフォームが表示されるようになります。

メールフォームが表示される

メールフォームが表示される

do_shortcodeの失敗例

このようにdo_shortcodeを使うとショートコードの内容を画面に表示できますが、PHPの文法を守らないとうまくいきません。以下、失敗例をいくつか紹介します。

do_shortcodeはPHPの開始・終了タグで囲むこと

do_shortcodeはPHPの命令なのでPHPの開始・終了タグで囲む必要があります。次のように裸で入力してもうまくいきません。

<?php the_content(); ?>
echo do_shortcode('ショートコード');

正しくはPHPの開始・終了タグで囲みます。

<?php the_content(); ?>
<?php
echo do_shortcode('ショートコード');
?>

ショートコードは半角の「'」で囲むこと

ショートコードは文字なので、do_shortcodeで呼び出すときはdo_shortcode('ショートコード')のように半角のシングルクォーテーション「'」で囲む必要があります。次の2つはいずれも間違いです。

echo do_shortcode(ショートコード);
echo do_shortcode(’ショートコード’);

1行目はショートコードを「'」で囲んでいません。2行目はショートコードを囲んでいるのは全角の「’」です。このサイトで何度も同じことを書いていますが、本当に紛らわしいので注意してください。シングルクォーテーション「'」は半角で入力です。

「'」で囲まないケースもありますが、話が長くなるので説明は省略します。

do_shortcodeはechoで出力すること

do_shortcodeで指定したショートコードを画面に表示するにはechoを使います。つまり、次のコードはうまくいきません。

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


正しくは次のようになります。


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

うまくいかないときは、入力したコードを入念にチェックしてみてください。「プラグインのバグ?」など、とんでもない方向に想像をふくらませるのは止めましょう。WordPressトラブルのほとんどの原因は単純な入力ミスです。

この記事をSNSで共有する
WordPressでお困りのときはご相談を
この記事を書いた西沢直木が直接、WordPress個別サポートで対応します。
こんなときはご相談を
  • WordPressの使い方(ページやメニューの作り方を教えてほしい)
  • カスタマイズ(機能の追加やデザイン調整をお願いしたい)
  • トラブル対応(画面真っ白・「ログインできない」を解決したい)
マンツーマンなので相談内容は自由です。いただいた課題をその場で解決、CSSやPHPも目の前で修正します。気軽にご相談ください。
wordpress講座受講予約
WordPress講座の問い合わせ先
脱・初心者を目指すWordPress 189のヒント

関連記事

BizVektorのカスタマイズ

Lightningのカスタマイズ

WordPressカスタマイズ

WordPressによるサイト作成のヒント

WordPressプラグイン

スポンサーリンク
西沢直木によるWordPress講座の紹介
ホームページ作成講座WordPress個別サポート