这只适用于博客页面、页面和单个帖子。您需要在登录页面上禁用重定向。在这里,您可以找到如何检测登录页面。Check if wp-login is current page
因此,要根据需要全局重定向,请使用:
if(!is_user_logged_in() && !is_wplogin() ) wp_safe_redirect( wp_login_url() );
函数is\\u wplogin()来自:
https://wordpress.stackexchange.com/a/237285/181863我还更喜欢在初始化之后进行重定向:
function is_wplogin(){
$ABSPATH_MY = str_replace(array(\'\\\\\',\'/\'), DIRECTORY_SEPARATOR, ABSPATH);
return ((in_array($ABSPATH_MY.\'wp-login.php\', get_included_files()) || in_array($ABSPATH_MY.\'wp-register.php\', get_included_files()) ) || (isset($_GLOBALS[\'pagenow\']) && $GLOBALS[\'pagenow\'] === \'wp-login.php\') || $_SERVER[\'PHP_SELF\']== \'/wp-login.php\');
}
add_action(\'init\', function () {
if (!is_user_logged_in() && !is_wplogin()) {
wp_redirect(wp_login_url());
die();
}
});