You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在WordPress中实现WooCommerce Shop页复用首页内容并配置规范URL

实现WordPress首页与WooCommerce Shop页面内容复用及规范URL设置

你的需求是让首页(https://lullyandrose.com.au/)和Shop页面(https://lullyandrose.com.au/shop)显示同一内容,同时通过link rel="canonical"避免重复内容的SEO问题,但你之前添加的代码逻辑有误,导致未生效。以下是正确的解决方案:

问题分析

你之前的代码存在两个关键问题:

  • return $redirect_url == '/'; 返回的是布尔值,而redirect_canonical过滤器需要返回具体的重定向URL或false来阻止重定向,逻辑不符合要求。
  • 直接判断完整的$requested_url容易出现匹配失败(比如HTTP/HTTPS、带www和不带www的差异),不如用WooCommerce自带的is_shop()条件函数可靠。

正确代码实现

将以下两段代码添加到你的主题functions.php文件(或使用自定义代码插件,比如Code Snippets,避免主题更新丢失代码):

1. 阻止Shop页面的自动规范重定向

add_filter( 'redirect_canonical', 'disable_shop_canonical_redirect', 10, 2 );
function disable_shop_canonical_redirect( $redirect_url, $requested_url ) {
    // 检测当前是否为Shop页面
    if ( is_shop() ) {
        // 返回false,阻止WordPress自动重定向到其他URL
        return false;
    }
    return $redirect_url;
}

2. 给Shop页面添加指向首页的Canonical标签

add_action( 'wp_head', 'add_shop_canonical_to_home' );
function add_shop_canonical_to_home() {
    if ( is_shop() ) {
        // 获取首页的规范URL
        $home_canonical = get_home_url();
        // 输出Canonical标签,确保URL转义安全
        echo '<link rel="canonical" href="' . esc_url( $home_canonical ) . '" />';
    }
}

效果说明

添加代码后:

  • 访问/shop时不会被重定向到首页,而是直接显示首页的内容。
  • Shop页面的<head>中会自动添加指向首页的canonical标签,告诉搜索引擎两个页面属于同一内容,避免重复内容导致的SEO降权。

内容的提问来源于stack exchange,提问作者Chrissa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 14:42:37