【WordPress】ウェジェットで自作したショートコードが生のまま表示されるようになってしまった。
先日、Wordpressとプラグインをアップデートしたら、
今まではちゃんと表示されていたウェジェットのショートコードが、そのまま表示されるようになってしまいました。
アップデート前のバージョンと、どのプラグインを知る手段がなく、取っ掛かりが難しい案件でした。
ちなみに、ウェジェットはカスタムhtmlを使っています。
一番最初に確認する事
これができていなとそもそも、そのまま表示されてしまいます。
1.function.phpでショートコードを定義していない。
add_shortcode('<ショートコードの名前>', '<ショートコードの内容function名>');
2.ショートコードを全角で記入してる
何かの拍子に[やスペースが全角になったのだろうかと調べましたが、今回は問題ありませんでした。
原因はadd_filter(‘widget_text’, ‘do_shortcode’);を書いていなかったこと。
function.phpにウェジェットでショートコードを使えるようにするコードが抜けていた事が原因でした。
<pre class="wp-block-preformatted">add_filter('widget_text', 'do_shortcode');</pre>
え?これがないとそもそもダメなんじゃ….と思うのですが、制作当初(たしか2018年春ごろ)はちゃんとショートコードとして機能していましたし、Wordpresのアップデートでこの1行だけが削除されるとも考えられません。
可能性がありそうなのは、add_filter(‘widget_text’,’do_shortcode’);を別のプラグインに依存していた….のかなぁ。ぐらいの見解です。
時間の都合上深くは追求できないのですが、今後のためのメモとして残しておきます。