可能是过滤器发射太晚而无法正常工作,但这就是我所拥有的,并且它不起作用。
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中没有出现任何警告,因此它似乎没有出现。
想法?
答案 0 :(得分:1)
你是否在实例化课程?在文件底部添加new someClass();
。我的建议是使用以下版本的add_filter()
:
add_filter( 'body_class', array( $this, 'body_class_filter' ) );
最后,如果要实例化该类,是否在运行body_class
过滤器之前这样做?