使用ECHO语句在内容区域之外显示的快捷码,不是我想要的

时间:2012-04-18 作者:21zna9

Possible Duplicate:
Shortcode always displaying at the top of the page

我的快捷码系统设置得相当正常,如下所示:

//[carouselle]
function carouselle_func( $atts ){
 return "foo and bar";
}

add_shortcode( \'carouselle\', \'carouselle_func\' );
但当我做同样的事情,但用echo语句而不是return。。。

//[carouselle]
function carouselle_func( $atts ){
 echo "foo and bar";
}

add_shortcode( \'carouselle\', \'carouselle_func\' );
它显示“foo和bar”inside the post 也立即显示body标签。

the echo statement

我检查了我的标题,我没有在附近调用\\u内容。这是因为我在做回声吗?我希望最终能做这样的事情:

//[carouselle]
function carouselle_func( $atts ){
 ?> 
 <h1>Some HTML Stuff</h1>
 <?php 
}

add_shortcode( \'carouselle\', \'carouselle_func\' ); 
但当执行此代码时,会出现一些HTML内容显示在主题顶部附近以及帖子内容中。奇怪,或者这是不允许的?

1 个回复
SO网友:miahelf

Shortcode函数应该“返回”值,而不是回显它:http://codex.wordpress.org/Shortcode_API

//[carouselle]
function carouselle_func( $atts ){
 return "<h1>Some HTML Stuff</h1>";
}
add_shortcode( \'carouselle\', \'carouselle_func\' ); 

结束

相关推荐

CURRENT_SHORTCODE()-检测当前使用的短码

在插件类中,我想为公共数据提供简单的字段:电子邮件、电话号码、Twitter等。该列表可以扩展。看到了吗plugin Public Contact Data 有关详细信息,请访问GitHub。为了保持使用简单,我还想提供易于键入的短代码:[public_email][public_phone][public_something]</唯一的区别是第二部分。我不想对短代码进行进一步的讨论,因为它们容易出错。所以我注册了one 插件类中所有字段的快捷码处理程序:foreach ( $this->fi