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 に答える