为什么我的短代码在其他内容之前执行?

时间:2011-08-15 作者:Roman

我有一页下面的文字。正如您所看到的,我的短代码位于底部,但当代码运行时,我的短代码的输出会插入到页面顶部,而不是跟随前面的内容。

<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]
这是我在函数中注册的短代码。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" />

1 个回复
SO网友:Bainternet

按大众需求:

解决方案就是更换printreturn . 短代码应始终返回值,而不是打印或回显。

结束

相关推荐

Shortcode empty attribute

有没有办法为短代码创建一个空属性?示例:function paragraph_shortcode( $atts, $content = null ) { return \'<p class=\"super-p\">\' . do_shortcode($content) . \'</p>\'; } add_shortcode(\'paragraph\', \'paragraph_shortcode\'); 用户类型某物它显