wordpres ショートコードの関数にechoは使ってはダメ!

表題通りなんですが、
まず、ショートコードを使うためにfunction.phpに設定を書きます。

add_shortcode(‘ショートコードで呼び出す時に使う名前’, ‘使うファンクション名’);

function 使うファンクション名(){echo “ショートコードが表示されました”;}

上記の用に設定をして、記事を書くときに

[ショートコードで呼び出す時に使う名前]

と括弧で囲んであげると「ショートコードが表示されました」と表示されます。

ちょっとまったぁ~~~~~~~~

表題の件を忘れてはいけない。

function 使うファンクション名(){echo “ショートコードが表示されました”;}
↓↓↓↓↓↓↓↓↓
function 使うファンクション名(){return “ショートコードが表示されました”;}

にしないと、記事の一番上に表示されしまいます。returnなら任意のところに表示可能です。
呼び出す関数内にひとつでもechoがあっても駄目です。

wp_contentのフィルターを通る際に、出力したいコードに置き換わる仕組みらしいので、
そこで、echoを使ってしまうと、その場で表示されてしまいます。
print、print_r、var_dump なども駄目です。

 

ショートコードの説明は以下のサイトがきれいにまとめているので参考にしてください。
WordPressのショートコードを自作してみる
http://www.webopixel.net/wordpress/53.html



コメントは受け付けていません。