WordPress自定义登出页面后跳转至首页的实现问题
如何让WordPress登出后跳转至网站首页?
嘿,这个问题很好解决!你当前代码里的登出跳转是硬写死的固定URL,我们只需要换成WordPress自带的核心函数来动态获取首页地址就好,这样不管你后续修改域名或者首页设置,都不用手动改代码啦。
修改方案:
把登出逻辑里的硬编码URL替换成home_url()函数,同时建议在跳转后加上exit;或者die();来确保页面立即跳转,避免后续代码执行。
修改后的完整site_router()函数如下:
function site_router() { $root = str_replace('index.php', '', $_SERVER['SCRIPT_NAME']); $url = str_replace($root, '', $_SERVER['REQUEST_URI']); $url = explode('/', $url); if(count($url) == 1 && $url['0'] == 'login') { require 'login-register/login-tpl.php'; die(); } if(count($url) == 1 && $url['0'] == 'register') { require 'login-register/register-tpl.php'; die(); } if(count($url) == 1 && $url['0'] == 'logout') { wp_logout(); // 用WordPress核心函数获取首页地址,自动适配你的网站设置 header("Location: " . home_url()); exit; // 确保跳转后终止脚本执行 } }
为什么这么改?
home_url()是WordPress官方提供的核心函数,会根据你在后台「设置→常规」里配置的「站点地址(URL)」自动返回正确的首页链接,比硬写URL更灵活也更安全。- 加上
exit;是因为header("Location: ...")只是发送跳转指令,如果不终止脚本,后续可能还有代码执行,可能导致跳转失败或者出现意外行为。
内容的提问来源于stack exchange,提问作者Etienne Moureton
相关产品推荐
相关产品推荐

