WordPress

WordPress ウィジェットの登録 widgets_init と init アクションフック

WordPress のプラグインを作るに当たって、オブジェクトをどこでインスタンス化するか悩む。

プラグインがロードされるタイミングの他、WordPressの各種機能が動作する際、それら機能にフックすることでも起動タイミングを掴むことができる。アクションフックのおおよその順番は、Plugin API/Action Reference に記されている。

自分としては、WordPressの大方の初期化が終了したところでインスタンス化したいと考え、「init」アクションフックを利用して自分の初期化処理を押し込めている。同様に管理画面では「admin_init」で、としたいのだがこれはうまくいかない。

さて本題のウィジェットであるが、ウィジェットを登録する際「widgets_init」というフックを利用するのだが、「init」フック処理の中でこれを呼び出しても機能しないので注意が必要だ。

なので、プラグインロード時にフックして動作するようにさせた。処理の順番については、意外と気を付けなければならない。

(WordPress 3.0.3)