我正在尝试使用login_url
它适用于未登录的用户。
但它对登录用户不起作用(它将他们重定向到 /access-denied/ 页面,这很奇怪),我真的不知道为什么。
global $current_user;
$current_user = wp_get_current_user();
function my_login_page( $login_url ) {
$user = $current_user;
$valid_roles = [ "administrator", "editor", "custom-role" ];
$the_roles = array_intersect( $valid_roles, $user->roles );
if ( empty( $the_roles ) ) {
return ( "/access-denied/" );
} else {
return ( "/login/" );
}
}
add_filter( "login_url", "my_login_page", 10 ); Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这并不太难:
$user = $current_user; $valid_roles = [ 'administrator', 'editor', 'custom-role' ]; $the_roles = array_intersect( $valid_roles, $user->roles ); if ( empty( $the_roles ) ) { nocache_headers(); wp_safe_redirect( '/access-denied/' ); exit; }