对类中的函数使用筛选器

时间:2017-07-23 作者:Runnick

过滤包含类成员的内容的最佳方法是什么?例如。

class Foo {

   ...constructor, etc. 

   function to_filter() {
      $output = \'<div class="wrap">\';
      $output .= $this->another_function();
      $output .= more html

      return apply_filters( \'to_filter_name\', $output );    
      } 
}
然后如何在我的筛选函数中使用$this->另一个\\u函数()?

1 个回复
SO网友:Jacob Peattie

如果这是您自己的类,并且您可以修改它,那么您可以将该类的实例作为附加参数传递给过滤器回调:

class Foo {

   ...constructor, etc. 

   function to_filter() {
      $output = \'<div class="wrap">\';
      $output .= $this->another_function();
      $output .= more html

      return apply_filters( \'to_filter_name\', $output, $this );    
      } 
}

function filter_foo( $output, $foo ) {
    $output .= $foo->another_function();

    return $output;
}
add_filter( \'to_filter_name\', \'filter_foo\', 10, 2 );
重要的是2add_filter() 呼叫它将两个参数传递给回调。

结束

相关推荐

当返回值为空时,Apply_Filters为什么要返回非空字符串?

因为这个把我的键盘弄坏了。进行了正确的安装,将数据库上载到新的MySQL,并一直在正确使用子主题。但有件事困扰着我,我想不出来。在我的新安装上(ver2.whowhatwhy.com) 我故意将一些小部件留空。我想,当阅读default-widgets.php wp中的文件包括在该小部件上不会显示标题元素。相反,显示标题小部件是因为,出于某种原因,传递的值apply_filters 是一个空格,而不是空白值$instance[\'title\'] 为空。$title = apply_filters( \'