OLIVESYSTEM(オリーブシステム)

WordPressでプラグインが有効なのにショートコードがそのまま表示されるケースの修正対応

先日、WordPressをバージョンアップしたところ、ショートコードがそのまま表示されて機能していないという問い合わせがありました。

まず調査したのは、プラグインが有効かどうかです。
無効だとショートコードがそのまま表示されますが、今回のケースではプラグインは有効のままでした。

次に、WordPressをデバッグモードで試したところ、「有効なコールバックなしでショートコードを解析しようとしています」というエラーが表示されました(WP4.3.0からのメッセージのようです)。

どうやら、ショートコードがうまく呼び出せていないようです。

HTMLのタグ内で使用できない(バージョンが4.2.3になると、inputのvalueにショートコードが使えない)件は知っていましたが、今回はそのケースには当て嵌まりません。

add_shortcodeの関数リファレンスを確認しましたが、エラーの原因となっているものには問題がなさそうにみえます。

そこで、コールバックではなくショートコードタグに問題があるのかと思い、タグが英語大文字だったものを小文字に変えてみました。

たとえば

add_shortcode('HOGEPLUGIN', 'hoge_func');

これを

add_shortcode('hogeplugin', 'hoge_func');

と変更しました。

投稿内でのショートコード呼び出しの[HOGEPLUGIN]も[hogeplugin]に変更します。

これでショートコードが機能し、プラグインは問題なく動作しました。