WooCommerce如何仅重定向商店主页面(排除搜索页)到其他页面
问题原因
WooCommerce的产品搜索结果页本质属于产品归档类型,默认会命中is_shop()的判断规则,所以你原来的重定向逻辑会把搜索页也纳入触发范围。
修复方案
调整判断条件,在重定向规则里排除搜索页等不需要重定向的页面即可,修改后的代码如下:
add_action('template_redirect', 'bc_010101_redirect_woo_pages'); function bc_010101_redirect_woo_pages() { // 仅匹配真实商店主页面,排除搜索、产品分类、产品标签等归档页 if (is_shop() && !is_search() && !is_product_category() && !is_product_tag()) { wp_redirect( home_url('/'), 301 ); exit; } }
补充说明
!is_search()用于排除所有搜索结果页,是解决当前问题的核心条件- 额外加的
!is_product_category()、!is_product_tag()用于避免产品分类、标签页被误重定向,如果你不需要排除这两类页面可以直接删除对应判断 - 用
home_url('/')代替硬编码的/可以适配不同站点的路径配置,加上301状态码符合永久重定向的HTTP规范,对SEO更友好
内容的提问来源于stack exchange,提问作者user3796291
相关产品推荐
相关产品推荐

