説明
admin_init は、管理画面の初期化時に実行されるアクションです。設定の登録などに使います。
基本構文
do_action( 'admin_init' )
引数
引数はありません。
戻り値
引数はありません。
使い方(サンプル)
add_action( 'admin_init', function() {
register_setting( 'my_group', 'my_option' );
} );
注意点
- 管理画面のページ(Ajaxを含む)でのみ実行されます。
- フロントのリクエストでは実行されません。
実務での使いどころ
- 管理画面の読み込み時に、設定の登録(
register_setting())や、管理画面専用の初期化を、行うとき。 - 権限に応じた、管理画面のリダイレクトを行うとき。
よくあるミスと対処
- 管理画面のページの表示にだけ、実行されると考えている。Ajax(
admin-ajax.php)や、admin-post.phpでも、実行される。 - フロントの処理に使っている。フロントでは、実行されない。
- 管理画面のリダイレクトなどを書き、フロントから使われるAjax(
admin-ajax.php)まで、巻き込んで壊してしまう。wp_doing_ajax()で除外する。 - 出力(
echo)をしている。まだ、HTMLの出力を始める前の段階。
NG例
add_action( 'admin_init', function () {
echo '設定を読み込みました'; // 出力を始める前の段階
} );
OK例
add_action( 'admin_init', function () {
register_setting( 'my_group', 'my_option', array( 'sanitize_callback' => 'sanitize_text_field' ) );
} );
使い分け早見表
| フック | 実行されるタイミング |
|---|---|
admin_init |
管理画面の読み込み時(Ajaxも含む) |
admin_menu |
管理画面のメニューを作るとき |
admin_enqueue_scripts |
管理画面のCSS・JavaScriptを読み込むとき |

コメント