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

WooCommerce分类页搭配Rank Math实现带筛选属性的动态标题

可直接复用的实现方案

以下代码自动适配所有产品分类页的品牌筛选场景,不会全局篡改其他页面标题,无需针对单个分类/品牌手动配置。

代码片段

将以下代码添加到当前子主题的functions.php文件,或通过Code Snippets插件以代码片段形式插入并启用即可:

// 调整品牌筛选场景下的Rank Math meta标题
add_filter( 'rank_math/frontend/title', function( $title ) {
    // 限定仅WooCommerce产品分类归档页生效
    if ( ! is_product_category() ) {
        return $title;
    }
    // 安全获取URL中的品牌筛选参数
    $brand = isset( $_GET['filter_brand'] ) ? sanitize_text_field( wp_unslash( $_GET['filter_brand'] ) ) : '';
    // 无有效品牌参数时返回原生标题
    if ( empty( $brand ) ) {
        return $title;
    }
    // 自定义标题拼接规则,可按需调整顺序与文案
    return sprintf( '%s | %s', esc_html( $brand ), $title );
});

// 同步修改分类页h1标签,与meta标题逻辑保持一致
add_filter( 'the_title', function( $title, $post_id ) {
    // 排除非主循环、非产品分类页的场景,避免误改其他位置的标题
    if ( ! is_product_category() || ! in_the_loop() || ! is_main_query() ) {
        return $title;
    }
    $brand = isset( $_GET['filter_brand'] ) ? sanitize_text_field( wp_unslash( $_GET['filter_brand'] ) ) : '';
    if ( empty( $brand ) ) {
        return $title;
    }
    return sprintf( '%s %s', esc_html( $brand ), $title );
}, 10, 2 );

逻辑说明

  • 页面判断规则:仅当访问页面为WooCommerce原生产品分类归档页时才执行修改逻辑,首页、商品详情页、文章页、普通页面均不受影响,不会出现全站点标题被统一替换的问题
  • 参数读取逻辑:自动提取URL中filter_brand的参数值,新增分类、新增品牌无需额外修改代码,自动适配
  • 安全处理:所有URL传入的参数都经过WordPress原生安全函数转义,避免恶意参数注入风险
  • 自定义调整:如果需要修改标题格式,直接修改sprintf函数内的模板即可,例如要实现「分类名 - XX品牌专区」的效果,可将meta标题的返回值改为sprintf( '%s - %s专区', $title, esc_html( $brand ) )

校验注意事项

  • 添加代码前请备份站点文件,避免语法错误导致站点异常
  • 代码生效后请清空站点缓存、CDN缓存,分别测试普通分类页、带品牌参数的分类页、非分类页的标题展示,确认仅目标场景触发修改
  • 如果后续需要新增其他筛选项(如颜色、材质)的动态标题,参照品牌参数的判断逻辑新增对应$_GET参数的读取与拼接规则即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 18:27:42