描述
注意,这不仅仅在面向用户的管理屏幕上运行,它也在admin-ajax.php和admin-post.php上运行。
这大致类似于更常见的‘init’钩子,它较早地触发。
更多信息
当用户访问管理区域时,admin_init
在任何其他钩子之前触发。
此挂钩不提供任何参数,因此只能用于回调指定的函数。
源码
更新日志
版本 | 描述 |
---|---|
2.5.0 | 开始引入 |
使用示例
从Codex迁移的示例:
在本例中,我们阻止没有管理员角色的用户访问管理面板。
/** * Restrict access to the administration screens. * * Only administrators will be allowed to access the admin screens, * all other users will be shown a message instead. * * We do allow access for Ajax requests though, since these may be * initiated from the front end of the site by non-admin users. */ function restrict_admin() { if ( ! current_user_can( 'manage_options' ) && ( ! wp_doing_ajax() ) ) { wp_die( __( 'You are not allowed to access this part of the site' ) ); } } add_action( 'admin_init', 'restrict_admin', 1 );
从Codex迁移的示例:
此示例的工作方式与第一个示例类似,但它会自动将缺乏指定能力的用户重定向到主页。
/** * Restrict access to the administration screens. * * Only administrators will be allowed to access the admin screens, * all other users will be automatically redirected to the front of * the site instead. * * We do allow access for Ajax requests though, since these may be * initiated from the front end of the site by non-admin users. */ function restrict_admin_with_redirect() { if ( ! current_user_can( 'manage_options' ) && ( ! wp_doing_ajax() ) ) { wp_safe_redirect( site_url() ); exit; } } add_action( 'admin_init', 'restrict_admin_with_redirect', 1 );
从Codex迁移的示例:
另一个典型用法是注册一个新设置供插件使用:
function myplugin_settings() { register_setting( 'myplugin', 'myplugin_setting_1', 'intval' ); register_setting( 'myplugin', 'myplugin_setting_2', 'intval' ); } add_action( 'admin_init', 'myplugin_settings' );
/** * Fire on the initialization of the admin screen or scripts. */ function the_dramatist_fire_on_admin_screen_initialization() { // Do stuff. Say we will echo "Hello World". echo 'Hello World'; } add_action( 'admin_init', 'the_dramatist_fire_on_admin_screen_initialization' );
如果用户在管理屏幕中,上述代码只会回显“Hello World”。