WordPress自定义PHP登录跳转代码导致页面空白问题求助
问题原因
你的代码里的exit;语句位于if-else结构的外部,不管用户是否登录,脚本执行到最后都会调用exit;终止运行,这就导致已登录用户的页面渲染流程被强行中断,最终显示空白页。
修复方案
把exit;语句移到else分支内部,确保只有未登录用户触发跳转时才终止脚本。另外,WordPress提供了更简洁的is_user_logged_in()函数来判断用户登录状态,不需要调用全局$current_user变量,可以优化代码逻辑:
修正后的代码:
<?php if ( !is_user_logged_in() ) { wp_redirect( 'https://site/?error=unauthorized' ); exit; } ?>
补充说明
is_user_logged_in()是WordPress内置函数,直接返回布尔值判断用户是否登录,比手动获取用户ID更高效可靠。exit;必须紧跟wp_redirect(),否则后续可能还有代码执行,导致跳转失效或者页面异常。
内容的提问来源于stack exchange,提问作者Sean Bagheri
相关产品推荐
相关产品推荐

