0

WordPress プラグインとウィジェットを構築しようとしていますが、それらを同じ物理パッケージに入れたいと考えています。ウィジェットは、ウィジェットが有効な領域にドラッグ アンド ドロップできる典型的な WordPress ウィジェットのままにしておく必要があります (既に完了しており、機能しています)。プラグインは、WordPress 管理パネルの特定のサブメニューをいくつかのオプションで有効にし、レンダリングできる必要があります。メイン文書内の特定の HTML。の部分としましょう。

また、この 2 つを通信させたいと考えています。少なくとも、ウィジェットがプラグインから特定の設定を読み取ることができるようにします。

私は高度な PHP プログラマーですが、WP プラグインの開発にはまだかなり慣れていないため、主な質問はそのための推奨されるアーキテクチャについてです。面白いことをグーグルで検索できなかったので、ここで車輪を再発明したくありません.

私の試行錯誤は私を次のようなものに導きます:

class MyWidget extends WP_Widget {
...
}
add_action('widgets_init', create_function('', 'register_widget("MyWidget");'));

その後:

class MyPlugin {
...
}

どちらもメインのplugin.phpファイルにありますが、後者の起動と、2 つの間のパブリック メソッド通信の形式の両方で、まだ完全に迷っています。

ありがとう!

4

1 に答える 1

0

代わりにワードプレスプラグインでクラスを操作する場合

add_action('widgets_init', create_function('', 'register_widget("MyWidget");'));

このように構造化する必要があります

add_action('widgets_init', array($this, 'callback');

はい、変数のないメソッド、INSIDE クォーテーション、コールバックがこのクラス内にある場合は $this を使用しますが、$my_other_class = new My_Other_Class(); でインスタンス化されたクラス $my_other_class を使用することもできます。$my_other_class 内のメソッドを呼び出すには ... &$this も機能します (参照を渡す)

さらに、変数をコールバックに渡したい場合は、次のようにコールバック メソッド内にアクションを追加できます。

add_action('my_custom_hook'...

そして、変数がどこにいてもできます

do_action('my_custom_hook', $var, $var2)

コールバック関数内でアクセスできるようにする

これが、少なくともwpコンテキスト内で物事を構造化する方法についての出発点になることを願っています...

于 2013-09-27T22:18:59.087 に答える