那个is_page(\'wp-admin/users.php\')
不起作用,因为is_page()
是针对page
仅键入,函数使用mainWP_Query
调用(在页面加载时运行),但在users.php
页
但你可以使用全球$pagenow
用于检查当前管理页是否为users.php
.
下面是一个使用admin_init
hook:
add_action( \'admin_init\', \'wpse_385245_1\' );
function wpse_385245_1() {
global $pagenow;
if ( \'users.php\' === $pagenow &&
in_array( \'contributor\', wp_get_current_user()->roles ) ) {
wp_redirect( home_url( \'specific-page\' ) );
exit;
}
}
或者您可以使用
load-users.php
hook 在加载
users.php
页,因此您不再需要检查
$pagenow
值:
add_action( \'load-users.php\', \'wpse_385245_2\' );
function wpse_385245_2() {
if ( in_array( \'contributor\', wp_get_current_user()->roles ) ) {
wp_redirect( home_url( \'specific-page\' ) );
exit;
}
}
但是,该钩子仅在
admin_init
和其他挂钩,所以如果您不想;“等待”;要完成这些额外的挂钩,只需使用
admin_init
.
Notes: