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

このブログは初心者がPHPを独習する過程で備忘録的に書いています。内容に不理解による誤りがあるかもしれません。もし、誤りがありましたらご指摘頂けば幸いです。

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

コールバックなので’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
このmisleadブログは、ご覧いただくと分かる通り広告表示を行っております。   広告にはGoog…

まとめ

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

2019/9/11 WordPressプラグイン開発は一旦終了しLaravelでの開発に切り替えました。

カンタンProWPとは
ファイルメーカーProを使用しないでWEB上でカンタンProの機能を実現するWordPressのプラグインです。2019年7月4日から開発を始めています。

だれでも手軽に、どこでも、安価にカンタンProを利用できるようにすることが開発の目的です。PHP(プログラミング言語)を使った開発になります。PHPについて一から勉強して開発を進めていきます。

コメント