当サイト、Codex 日本語版は今後積極的な更新は行わない予定です。後継となる新ユーザーマニュアルは、https://ja.wordpress.org/support/ にあります。
万が一、当サイトで重大な問題を発見した際などは、フォーラムや WordSlack #docs チャンネルでお知らせください。</p>
万が一、当サイトで重大な問題を発見した際などは、フォーラムや WordSlack #docs チャンネルでお知らせください。</p>
プラグイン API/アクションフック一覧/admin init
提供: WordPress Codex 日本語版
< プラグイン API | アクションフック一覧
説明
admin_init はユーザーが管理画面エリアにアクセスする際に他のフックより先に実行されます。このフックはパラメーターを持ちませんので、特定の関数をコールバックすることだけが可能です。
使い方
<?php add_action( 'admin_init', 'function_name' ); ?>
"function_name" は呼び出される関数名です。
例:アクセスコントロール
それでは、作例を見てみましょう。
/** * 管理画面へのアクセスを制限します。 * * 管理者のみ管理画面へのアクセスを許可し、 * それ以外のすべてのユーザーには代わりにメッセージを表示します。 * * Ajaxリクエストは許可する必要があります。 * 管理者以外のユーザーがフロントエンドからアクセスする可能性があるためです。 */ function restrict_admin() { if ( ! current_user_can( 'manage_options' ) && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) ) { wp_die( __( 'You are not allowed to access this part of the site' ) ); } } add_action( 'admin_init', 'restrict_admin', 1 );
このサンプルでは、Administrator Roleを持たないユーザーからの管理画面へのアクセスをブロックしています。
例:リダイレクトを使ったアクセスコントロール
このサンプルは最初のサンプルと似ていますが、特定の権限を持たないユーザーをホームページにリダイレクトします。
/** * 管理画面へのアクセスを制限します。 * * 管理者のみ管理画面へのアクセスを許可し、 * それ以外のすべてのユーザーはサイトのフロントページにリダイレクトします。 * * Ajaxリクエストは許可する必要があります。 * 管理者以外のユーザーがフロントエンドからアクセスする可能性があるためです。 */ function restrict_admin_with_redirect() { if ( ! current_user_can( 'manage_options' ) && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) ) { wp_redirect( site_url() ); exit; } } add_action( 'admin_init', 'restrict_admin_with_redirect', 1 );
例:新規設定を登録
もう一つのよくある使い方は、プラグインから新しい設定を登録する方法です。
function myplugin_settings() { register_setting( 'myplugin', 'myplugin_setting_1', 'intval' ); register_setting( 'myplugin', 'myplugin_setting_2', 'intval' ); } add_action( 'admin_init', 'myplugin_settings' );
register_setting() を参照。
最新英語版: WordPress Codex » Plugin_API/Action_Reference/admin_init (最新版との差分)