
パターンをPHPで配置したらショートコードが上手く配置できません!

少し工夫すれば配置できるよ!
以前にパターンブロックをPHPで実装する方法について解説しましたが、パターン内にショートコードを配置したときに、上手く配置されずに困っているという方もいると思います。
本記事では、パターンをPHPで実装した際にショートコードを有効にする方法について解説します。
パターンにショートコードを配置する方法
WordPressのブロックエディタで作成したパターンを、PHPで自動配置する場合、パターン内に含まれるショートコードがそのままテキストとして出力されてしまうことがあります。
これは、echo文がショートコードを解釈しないことが原因です。
do_shortcode関数の活用
この問題は、echo文で表示する際にdo_shortcode関数を併用すれば解決します。
do_shortcode関数は、指定された文字列内のショートコードを解釈し、その結果を返すので、通常と同じようにショートコードが表示されます。
前回紹介したコードを修正すると、以下のようになります。
<?php
$my_wp_block = get_post(ID);
echo do_shortcode($my_wp_block->post_content);
?>
echo文のpost_content部分をdo_shortcode関数で囲んだだけですが、これにより出力する前にショートコードが有効になるので、意図した通りにコンテンツを表示させることができます。

もちろん、ショートコードの指定自体が間違っている場合は上手く表示されないので、事前にプレビューするなどしてショートコードがきちんと表示されることを確認しておきましょう。
まとめ
WordPressのパターンをPHPで配置する際にショートコードを表示する方法について解説しました。
do_shortcode関数の役割が分かりやすいように、前回と今回で記事を分けて解説しましたが、実際に使用する際には今回紹介した形でコードを記述しておいた方が良いでしょう。
ショートコードがうまく表示されずに困っていた方の参考になれば幸いです。
- ショートコードを使用したパターンをPHPで配置する方法
- 原因はecho文がショートコードを解釈しないこと
- do_shortcode関数を使うことで結果が出力されるようになる
