プログラミングゆるめモ

プログラミングに関することをゆるくメモしてます

PHP WordPress

WordPress ウィジェットでショートコードが実行されない問題

ショートコード

ショートコードを作成し、その呼び出しを投稿本文中に記述すると、投稿の該当部分にショートコードの実行結果が表示されます。ショートコードの呼び出しは、[ShortcodeName]こんな形式です。カギ括弧で呼び出すショートコード名を囲みます。
 本文中では、こんな簡単にショートコードを呼び出すことができます。

ウィジェットでショートコードが実行されない

ウィジェットでショートコードを実行すべく、ウィジェットにテキストウィジェットを挿入して、内容にショートコードの呼び出しを記述しても、ショートコードは実行されません。[ShortcodeName]がむなしく文字列として表示されてしまうのでした。

解決策

 ウィジェットに対して、ショートコードであることを知らせて処理を行うようにさせるための登録が必要となります。
 今回の場合は、テキストウィジェットに対して、ショートコードを探し出してショートコード用のフックをかけるように依頼する処理を行います。
 とはいっても、非常に簡単なのでした。

たったこの1行だけfunctions.phpに書けば、テキストウィジェットでショートコードが実行されるようになるのでした。
今回は、テキストウィジェットでショートコードが実行されるようにするためのフィルターの追加ですので、他でショートコードが実行されない場合にはその該当箇所についてのフィルターの追加が別途必要になります。

-PHP, WordPress