我有一种奇怪的行为,我想知道......为什么。我为WordPress做了一个小部件插件,允许设置各种东西(如宽度,位置,颜色等),我试图在前端使用它,但我仍然坚持最基本的东西。 / p>
我有这个代码可以正常工作:
add_filter( 'widget_display_callback', 'capture_widget', 100, 3 );
function capture_widget( $instance, $widget_class, $args ) {
$widget_class->widget( $args, $instance );
echo $widget_class->widget_options['classname'];
return false;
}
问题是我想把所有东西都变成一个班级。所以我这样做了:
class MyWidgets {
function __construct() {
add_filter( 'widget_display_callback ', array( $this, 'widget_display' ), 100, 3 );
}
public function widget_display( $instance, $widget_class, $args ){
$widget_class->widget( $args, $instance );
echo $widget_class->widget_options['classname'];
return false;
} // widget_display
}
new MyWidgets();
而且......它停止了工作。一切都放在完全相同的文件中,但只有它的第一个版本。我没有任何错误,它只是没有做任何事情。我试图在add_filter( 'widget_display_callback', 'capture_widget', 100, 3 );
方法中移动__construct
部分(但是我让它来调用类外的函数)并且它继续工作,它只是不能很好地发挥作用当谈到一种自足的方法时。
有什么好的理由吗?我错过了什么吗?
谢谢!
答案 0 :(得分:3)
'widget_display_callback '
→删除k和单引号之间的空格