説明
init は、WordPressの読み込みが完了し、ユーザー認証の後・ページ出力の前に実行されるアクションです。投稿タイプやタクソノミーの登録など、初期化処理の定番のタイミングです。
基本構文
do_action( 'init' )
引数
引数はありません。
戻り値
引数はありません。
使い方(サンプル)
add_action( 'init', function() {
register_post_type( 'news', array( 'public' => true ) );
} );
注意点
register_post_type()やregister_taxonomy()はここで呼びます。- 管理画面・フロント・Ajaxなど、すべてのリクエストで実行されます。
実務での使いどころ
- カスタム投稿タイプや、カスタムタクソノミーを、登録するとき。
- ショートコードや、リライトルールを、登録するとき。
- ユーザーが確定した、あとの初期化の処理を、行うとき。
よくあるミスと対処
- 重い処理を書いている。
initは、すべてのリクエストで、実行される。 - 出力(
echo)をしている。まだ、HTMLの出力を始める前の段階。 - 投稿タイプの登録を、
plugins_loadedなど、早すぎるフックで行っている。登録はinitで行う。 flush_rewrite_rules()を、毎回呼んでいる。
NG例
add_action( 'init', function () {
register_post_type( 'news', array( 'public' => true ) );
flush_rewrite_rules(); // 毎回のリクエストで、実行される
} );
OK例
add_action( 'init', function () {
register_post_type( 'news', array( 'public' => true ) );
} );
使い分け早見表
| フック | 実行されるタイミング(早い順) |
|---|---|
plugins_loaded |
プラグインの読み込みが、終わったとき |
init |
WordPressの初期化が、終わったとき |
wp_loaded |
すべての準備が、終わったとき |
関連項目
wp_loaded、after_setup_theme、register_post_type()
公式リファレンス:init | WordPress Developer Resources

コメント