ライフサイクルとは大仰だが、要するにコアの読み込み順を把握していないと、プラグインを作成していても中々思うような結果が得られず、時間を浪費してしまう。
特にフックを引っ掛ける時、過ぎてしまったフックに一生懸命掛けようとして何の反応も得られないこともある。
幸いに、Codexのこの辺が割とキチンと解説してあるが、微妙に食い違っている。
そこで以下のサイトが大変参考になった。
初期化に関連するアクションのおさらい
いつも何気なくfunctions.phpで使っているafter_setup_themeアクションやinitアクション。普段はあまり意識していなかったが、ふとしたことからどんな順番に呼び出されるのか気になってしまい、ちょっと調べてみた。
WP開発者としては、要するにフックやフィルターの順番を知りたい。そういう観点で見ている記事なので、参考になると思う。
それから、管理画面でのライフサイクルはこれと少し違ってくるはず。これも要検証。
意外なのが、
after_theme_setup->ユーザー認証->init
という順番で進むので、after_theme_setupというフックはかなり早い段階で実行されるということだ。
要するに上の1.と2.の間がかなりドラマチックに展開されるということで、ユーザー認証がらみの事をしたい場合は要注意だ。
最も早いアクションはmuplugins_loadedだが、そもそもここにフックさせることは出来るのだろうか?
後日談:早速タクソノミー(tax_query) でハマった。cronとかajaxでQueryを使うケースは多いはず。しかし、タクソノミーが登録される前に何をやってもまったく反応しない。タクソノミーはafter_theme_setupで実行してから、queryはinitで取得する流れならOK。これは悩んだ。
後日談2:もちろん今はadmin_ajaxを使っています。
コメント