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

如何通过动作钩子移除Astra面包屑中的「Shop」项?

解决Astra主题店铺页面面包屑移除「Shop」项的问题

针对你的情况,直接使用Astra主题提供的astra_breadcrumbs_trail过滤器,精准修改店铺页面的面包屑数组即可,不会影响其他页面的面包屑显示。

将以下代码添加到你的主题子主题的functions.php文件中,或者使用自定义代码插件(如Code Snippets)插入:

add_filter( 'astra_breadcrumbs_trail', 'remove_shop_from_astra_breadcrumbs', 10, 1 );
function remove_shop_from_astra_breadcrumbs( $trail ) {
    // 仅在WooCommerce店铺页面执行修改
    if ( is_shop() ) {
        // 检查面包屑数组长度,确保有可移除的项
        if ( count( $trail ) >= 3 ) {
            // 移除最后一项(Shop)
            array_pop( $trail );
        }
    }
    return $trail;
}

代码说明

  • astra_breadcrumbs_trail是Astra主题专门用于修改面包屑轨迹的过滤器,能直接操作面包屑的数组结构,这是比通用过滤器更精准的方式。
  • is_shop()判断当前页面是否为WooCommerce官方店铺页面,确保修改仅作用于目标页面,不干扰其他页面的正常面包屑显示。
  • array_pop()安全移除数组最后一项,配合长度判断避免空数组报错。

如果你的面包屑中「Shop」显示为中文,可调整代码精准匹配文本后再移除:

add_filter( 'astra_breadcrumbs_trail', 'remove_specific_shop_item_from_breadcrumbs', 10, 1 );
function remove_specific_shop_item_from_breadcrumbs( $trail ) {
    if ( is_shop() ) {
        // 遍历数组找到对应文本的项并移除
        foreach ( $trail as $key => $item ) {
            if ( isset( $item['label'] ) && $item['label'] === '商店' ) {
                unset( $trail[$key] );
                // 重新索引数组避免结构混乱
                $trail = array_values( $trail );
                break;
            }
        }
    }
    return $trail;
}

替换代码中的'商店'为你页面实际显示的文本即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 14:54:59