Webサイト構築

パターンのPHP実装でショートコードを有効にする方法【WordPress】

当サイトはアフェリエイト広告を利用しています
カッパ子
カッパ子

パターンを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関数で囲んだだけですが、これにより出力する前にショートコードが有効になるので、意図した通りにコンテンツを表示させることができます。

パターン内ショートコードのPHPによる配置

もちろん、ショートコードの指定自体が間違っている場合は上手く表示されないので、事前にプレビューするなどしてショートコードがきちんと表示されることを確認しておきましょう。

まとめ

WordPressのパターンをPHPで配置する際にショートコードを表示する方法について解説しました。

do_shortcode関数の役割が分かりやすいように、前回と今回で記事を分けて解説しましたが、実際に使用する際には今回紹介した形でコードを記述しておいた方が良いでしょう。

ショートコードがうまく表示されずに困っていた方の参考になれば幸いです。

  • ショートコードを使用したパターンをPHPで配置する方法
  • 原因はecho文がショートコードを解釈しないこと
  • do_shortcode関数を使うことで結果が出力されるようになる