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