私は奇妙な振る舞いをしています。なぜなのか知りたいのですが。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が(ただし、クラス外の関数を呼び出すようにしました)、動作し続けますが、自己完結型のメソッドを呼び出すとうまくいきません。
正当な理由はありますか?私は何か見落としてますか?
ありがとう!