シュートコードを変更しようと思って固定ページを編集すると、編集画面に入る前にショートコードによる出力が表示されてしまう現象がありました。割と簡単に解決できたのでその方法を書いておきます。
コールバックなので’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;
}
参考になったサイト
もっと複雑な問題かと思っていたのですが、解決策は意外と簡単でした。ありがとうございます。
まとめ
プラグインになにか問題を発見したとき、一つ一つ潰していかないといけません。そして、問題の原因を理解して開発を進めることが大事です。これも勉強のひとつですね。
[temp id=1]