我正在嘗試使用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 );
這並不太難: