为什么使用对象挂接的函数一直在执行?

时间:2014-03-08 作者:rram

我尝试在插件中使用类和对象。我用shortcode 但它执行该功能时没有将短代码粘贴到任何页面/帖子。

class example{

function ex_funct(){
      ?>
      <h3>Hello</h3>
      <?php
}

}
$obj = new example();
add_shortcode(\'examp_code\',$obj->ex_funct());
为什么它在管理员处显示Hello以及前端标题,而不粘贴代码examp_code ?

这里发生了什么?

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

这是因为您运行add_shortcode(). 要将is作为回调发送,请使用:

add_shortcode(\'examp_code\', array ( $obj, \'ex_funct\' ) );
现在仍然存在一个问题:您在短代码回调中创建输出。永远不要那样做,你have to return a string.

将其更改为:

function ex_funct(){
      return \'<h3>Hello</h3>\';
}

结束

相关推荐

Overwriting a Shortcode

我有一个扩展Visual Composer插件的主题,在首页上有一个滑块。滑块将显示来自五个不同客户的五份推荐信。我想在滑块中添加每个推荐信的特色图像作为缩略图。以下是父主题的简短代码:function jo_customers_testimonials_slider( $atts ) { extract( shortcode_atts( array( \'limit\' => 5, \"widget_title\" => __(\'What Are People Saying