1

可能过滤器启动得太晚了,无法正常工作,但这就是我所拥有的,但它不起作用。

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 中没有显示警告。

想法?

4

1 回答 1

1

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

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

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

于 2015-02-08T19:47:14.777 回答