web-dev-qa-db-ja.com

プラグインでdo_actionを呼び出す必要がありますか?

何かをdo_actionするたびにadd_action関数を呼び出す必要がありますか?

3
Shafiul

通常、プラグインで既存のアクションを使用します。 WordPressは必要に応じてdo_action()を呼び出します。

ショッピングプラグインのようにプラグインがかなり複雑な場合は、他のプラグイン開発者またはプロバージョンのプラグインに対して追加のアクションを提供することをお勧めします。このような場合、do_action()が役に立つと思われるところならどこにでも追加します。

例:私はいくつかのプロジェクトで使用するPHPクラスのライブラリを持っています。自分のライブラリに依存するプラグインを書くときは、ライブラリの準備ができるまで待つ必要があります。それで私は私のライブラリに書きます:

require 'class.T5_Custom_Post_Type_Helper.php';
require 'class.T5_Custom_Taxonomy_Helper.php';
// and so on…
do_action( 't5_library_loaded' );

私の他のプラグインでは、すべての作業を開始するためにこのアクションにフックします。

add_action( 't5_library_loaded', array ( 'My_Plugin_Class', 'init' ) );

必要なクラスがすべて利用できるようになったので、毎回class_exists()をテストする必要はありません。

add_action()do_action()は必ずしも結び付けられている必要はありません。だからあなたの質問に対する答えは:いいえ。 :)

6
fuxia