__construct中的WordPress add_filter('body_class')不起作用

时间:2015-02-08 19:15:52

标签: wordpress class construct add-filter

可能是过滤器发射太晚而无法正常工作,但这就是我所拥有的,并且它不起作用。

class someClass()
{
    public function __construct()
    {
        add_filter( 'body_class', array( 'someClass', 'body_class_filter') );
    }

    public function body_class_filter( $classes )
    {
        $classes[] = 'some-class';
        return $classes;
    }
}

我也试过

add_filter( 'body_class', array( $this, 'body_class_filter') );

add_filter( 'body_class', array( &$this, 'body_class_filter') );

add_filter( 'body_class', array( __CLASS__, 'body_class_filter') );

但是那个过滤器似乎没有被解雇。我甚至在函数body_class_filter()中放入了trigger_warning()来查看代码是否处理均匀,但由于debug.log中没有出现任何警告,因此它似乎没有出现。

想法?

1 个答案:

答案 0 :(得分:1)

你是否在实例化课程?在文件底部添加new someClass();。我的建议是使用以下版本的add_filter()

add_filter( 'body_class', array( $this, 'body_class_filter' ) );

最后,如果要实例化该类,是否在运行body_class过滤器之前这样做?