Wordpress apply_filters用于子类

时间:2013-08-19 04:40:00

标签: php plugins wordpress-plugin wordpress

我正在编写一个插件,在添加钩子时,我发现我将不得不为每个子类反复编写相同的过滤器。因此,如果B,C和D是A的子级,我必须使用“b_dosomething”,“c_something”和“d_something”的键创建过滤器,以便让孩子们接受此过滤器。

有没有办法更一般地做到这一点?但只是添加'dosomething'并传递一些东西......也许?

1 个答案:

答案 0 :(得分:0)

在A类中创建一个函数

class A {

  public function __construct()
   {
       $this->apply_filters();
    }


   public function apply_filters()
   {
     if(!method_exists($this, 'filter_callback'))
        return;
     apply_filter('your_filter_here', array($this,'filter_callback'));
   }
}

现在是子类,如果你有函数'filter_callback',那么将应用过滤器。

class B extends A{

   public function __construct()
   {
      parent::__construct;
    }

    public function filter_callback()
    {
       //do something
     }
}

这样,您不必花费额外的时间来重复调用appply_filter()。

希望这能回答你的问题