WordPressプラグイン開発 – ショートコードの出力が固定ページ編集読み込み中に表示されてしまう件

[temp id=2]

シュートコードを変更しようと思って固定ページを編集すると、編集画面に入る前にショートコードによる出力が表示されてしまう現象がありました。割と簡単に解決できたのでその方法を書いておきます。

コールバックなので’print’ではなく’return’を使うべき

シュートコードはwp_contentというフィルターを通って処理されるため、シュートコードの出力はwp_contentフィルターへのコールバック(return)として返す必要があります。printやechoではwp_contentフィルターのタイミングを得られません。

▼ 変更前(ページ編集画面読み込み中にも出力されてしまう)

//カンタンProを起動します
function kantan_pro_start(){

//開かれたページのスラッグによってプロセスを選択するプログラムを読み込む
require "lib/kpwp-select-processing.php"; 
print $msg;
}

▼ 変更後(期待通りに出力される)

//カンタンProを起動します
function kantan_pro_start(){

//開かれたページのスラッグによってプロセスを選択するプログラムを読み込む
require "lib/kpwp-select-processing.php"; 
return $msg;
}

参考になったサイト

もっと複雑な問題かと思っていたのですが、解決策は意外と簡単でした。ありがとうございます。

記事本文に入れたショートコードの出力位置がおかしい場合の原因と対処 WordPress

まとめ

プラグインになにか問題を発見したとき、一つ一つ潰していかないといけません。そして、問題の原因を理解して開発を進めることが大事です。これも勉強のひとつですね。

[temp id=1]
シェアする
購入する
購入する