WordPress中wp_redirect无法跳转至目标URL问题求助
解决WordPress首页重定向失效的问题
嘿,我来帮你搞定这个重定向不工作的问题~你的代码里有几个关键问题,我一步步给你拆解并修正:
原代码的核心问题
is_page()函数用错了:这个函数不能直接传完整URL,它只认页面的ID、slug(别名)或者标题。而且判断首页的话,WordPress有专门的函数is_front_page()(匹配你设置的「静态首页」)或者is_home()(匹配博客文章列表页),用这两个才准确。- URL匹配的局限性:如果你的网站实际运行在HTTPS或者带WWW的域名下,你写的
http://mywebsite.com/就和当前访问的URL不匹配,自然不会触发重定向逻辑。 - 冗余的判断条件:直接判断首页就行,不用硬写死域名。
修正后的代码
情况1:重定向静态首页
如果你的首页是设置的静态页面,用这个代码:
<?php add_action( 'wp', 'redirect_to_google' ); function redirect_to_google() { // 判断是否是静态首页 if ( is_front_page() ) { $target_url = 'http://www.google.com'; // 301永久重定向(如果是临时重定向改成302) wp_redirect( $target_url, 301 ); exit; // 终止后续代码执行,确保重定向生效 } } ?>
情况2:重定向博客首页
如果你的首页是默认的博客文章列表页,把is_front_page()换成is_home()就行:
<?php add_action( 'wp', 'redirect_to_google' ); function redirect_to_google() { if ( is_home() ) { $target_url = 'http://www.google.com'; wp_redirect( $target_url, 301 ); exit; } } ?>
额外注意事项
- 清除缓存:如果你用了缓存插件(比如WP Rocket、W3 Total Cache)或者服务器有缓存,一定要清除缓存后再测试,不然旧的页面缓存会让重定向不生效。
- 检查插件冲突:有些SEO插件或者重定向插件可能会覆盖你的自定义代码,暂时禁用其他重定向相关插件试试。
- HTTPS适配:如果你的网站用了HTTPS,目标URL最好也用HTTPS版本(
https://www.google.com),避免混合内容问题。
内容的提问来源于stack exchange,提问作者user9053291
相关产品推荐
相关产品推荐

