0

我有一个奇怪的行为,我想知道......为什么。我为 WordPress 做了一个小部件插件,以允许设置各种东西(如宽度、位置、颜色等),我试图在前端使用它,但我被困在最基本的东西上。

我有这段代码可以正常工作:

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(但我让它调用类外函数)并且它继续工作,它在调用自包含方法时表现不佳。

有什么好的理由吗?我错过了什么?

谢谢!

4

1 回答 1

3
'widget_display_callback '

→ 删除 k 和单引号之间的空格

于 2013-10-11T07:20:01.410 回答