質問: 短いコードが他のコンテンツよりも先に実行されるのはなぜですか? 私はページに次のテキストがあります。私のショートコードは一番下にありますが、どういうわけかコードが実行されるとわかるように、私のショートコードの出力は、その前の内容に従うのではなく、ページの上部に挿入されます。<img class="alignnone" title="title_enquires" src="http://localhost/barcelona/wp-content/uploads/2011/08/title_enquires.jpg" alt="" width="589" height="77" /> <img class="alignnone" title="contact_map" src="http://localhost/barcelona/wp-content/uploads/2011/08/contact_map.jpg" alt="" width="555" height="222" /> [barcelona_address] これがfunction.phpファイル内の私のショートコード登録です。<?php add_shortcode( 'barcelona_address', 'barcelona_shortcode_handler' ); function barcelona_address_func() { print "<p>sdsdsds</p>"; } function barcelona_shortcode_handler( $atts, $content=null, $code="" ) { if (function_exists($code . "_func")) { call_user_func($code . "_func", $atts); } } ?> 結果は次のとおりです。<p>sdsdsds</p> <img class="alignnone" title="title_enquires" src="http://localhost/barcelona/wp-content/uploads/2011/08/title_enquires.jpg" alt="" width="589" height="77" /> <img class="alignnone" title="contact_map" src="http://localhost/barcelona/wp-content/uploads/2011/08/contact_map.jpg" alt="" width="555" height="222" />
回答: 人気のある需要によって:解決策は単にprintをreturnに置き換えることです。ショートコードは、値を表示したりエコーしたりするのではなく、常に値を返します。