🆕 Bricks 2.4 已发布:查询循环性能提升 40%,迁移教程同步更新 →

首页 / 中文教程 / 教程

Bricks 在 My Account 页面标题后追加 WooCommerce 端点名称

教程:Bricks 在 My Account 页面标题后追加 WooCommerce 端点名称——woocommerce 附完整代码可直接复用,适合外贸独立站与 WordPress 开发者。

Ray ChanRay Chan·2026-08-11·约 2 分钟
目录
  1. 1.问题背景
  2. 2.Step 1:注册端点识别函数
  3. 3.Step 2:拼进页面标题
  4. 4.Step 3:白名单化
  5. 5.小结

问题背景

WooCommerce 的“我的账户(My account)“页面下有多个子页面,官方术语叫端点(Endpoint):订单、下载、地址、账户详情等。它们共用 My account 这一个页面,URL 不同(/my-account/orders/、/my-account/downloads/……),但页面标题都显示为”My account“。

结果就是:浏览器标签页上全是同一个标题,用户开多个标签分不清谁是谁;如果你用 Bricks 给 My account 做了自定义模板并在标题区输出 {post_title},同样无法区分当前在哪个端点。

解决办法:注册一个函数识别当前端点,返回对应的后缀文案,拼到标题后面。

Step 1:注册端点识别函数

在子主题的 functions.php(不需要开头 <?php 标签)或代码片段插件中添加:

function bl_get_endpoint_name(): string {
    if ( is_wc_endpoint_url( 'orders' ) ) {
        return ' - Orders';
    } elseif ( is_wc_endpoint_url( 'downloads' ) ) {
        return ' - Downloads';
    } elseif ( is_wc_endpoint_url( 'edit-address' ) ) {
        return ' - Addresses';
    } elseif ( is_wc_endpoint_url( 'edit-account' ) ) {
        return ' - Account details';
    } else {
        return '';
    }
}

核心是 WooCommerce 自带的 is_wc_endpoint_url( '端点名' ) 判断函数:传入端点 slug,返回当前页面是否处于该端点。按顺序判断后返回对应后缀,都不是就返回空字符串(比如 My account 首页本身)。

Step 2:拼进页面标题

在 Bricks 模板中,把标题元素的动态数据设为:

{post_title}{echo:bl_get_endpoint_name}

这样在订单端点页,标题就会渲染成“My account - Orders”;在下载页变成“My account - Downloads”,以此类推。

Step 3:白名单化

Bricks 只允许执行白名单内的函数,把 bl_get_endpoint_name 加进去:

add_filter( 'bricks/code/echo_function_names', function() {
  return [
    'bl_get_endpoint_name'
  ];
} );

同样建议把站点其他自定义函数一并收集进来(Bricks → 设置 → 自定义代码 → Code review 可核对)。

相关阅读:

小结

这套“is_wc_endpoint_url() 识别端点 + {echo:...} 动态输出“的方案,不止能改标题:任何需要按端点区分的输出——比如给不同端点页显示不同的提示横幅——都可以照这个模式做。WooCommerce 端点的完整清单可以查官方文档(woocommerce.com 开发者文档 Endpoints 一节),按需扩展 elseif 分支即可。

顺带一提,前端体验层面浏览器标题一变,用户多开标签页的辨识度立刻提升;对 SEO 来说每个端点页的 title 也各不相同,算是白捡的优化。

适用场景与价值

这个「端点名追加到标题」的技巧,最适合做了自定义 My Account 模板、又用 {post_title} 输出标题的站点——否则所有子页在浏览器标签和搜索结果里都叫「My account」,用户多开标签分不清、SEO 也浪费了每个端点的独立标题权重。它不止能改标题:任何按端点区分的输出(比如不同端点显示不同提示横幅、不同 CTA)都能照这个 is_wc_endpoint_url() + echo 的模式扩展。端点完整清单见 WooCommerce 官方开发者文档 Endpoints 一节,按需加 elseif 分支即可。

常见问题(FAQ)

Q:为什么所有子页标题都一样? A:My account 各端点共用一个页面、URL 不同,默认标题都显示「My account」,需用端点识别函数区分。

Q:这个改动对 SEO 有帮助吗? A:有,每个端点页有了独立 title,搜索结果里辨识度和权重分配都更好。

Q:能按端点显示不同横幅吗? A:能,用同样的 is_wc_endpoint_url() 判断加条件渲染即可。

Q:端点清单去哪查? A:见 WooCommerce 官方开发者文档 Endpoints 一节,按需在函数里加分支。

延伸阅读

Ray Chan

站长

Ray Chan

WordPress Developer & Bricks Specialist

WordPress developer with 10+ years of client builds. Switched to Bricks in 2023 — now builds fast WordPress sites and migrates legacy Elementor/Divi projects.

延伸阅读