如何移除AIOSEO面包屑中的WooCommerce Shop链接?
移除AIOSEO面包屑中的WooCommerce Shop链接
问题分析
你之前的代码无效,是因为WooCommerce的Shop页面属于产品归档页,并非分类术语(WP_Term),原代码里的is_a( $crumb['reference'], 'WP_Term' )判断条件无法匹配到Shop链接。
解决方案
替换原有代码为以下内容,添加到主题的functions.php文件中:
add_filter( 'aioseo_breadcrumbs_trail', 'remove_aioseo_shop_breadcrumb' ); function remove_aioseo_shop_breadcrumb( $crumbs ) { // 遍历面包屑数组,找到Shop链接并移除 foreach ( $crumbs as $key => $crumb ) { // 方式1:通过链接标签判断(适用于英文站点,中文站点替换为你的Shop页面显示名称) if ( 'Shop' === $crumb['label'] ) { unset( $crumbs[ $key ] ); break; // 找到后直接跳出循环,提升效率 } // 方式2:通过链接目标URL判断(更精准,不受语言/自定义名称影响) // $shop_url = get_permalink( wc_get_page_id( 'shop' ) ); // if ( $shop_url === $crumb['url'] ) { // unset( $crumbs[ $key ] ); // break; // } } // 重新索引数组,避免面包屑出现空节点 return array_values( $crumbs ); }
代码说明
- 优先推荐方式2,它通过Shop页面的实际URL匹配,不受多语言或自定义页面名称影响,兼容性更强。
array_values()用于重新整理数组索引,防止移除元素后面包屑结构出现异常。- 修改完成后,记得清除网站缓存和AIOSEO缓存,确保修改生效。
内容的提问来源于stack exchange,提问作者Sarah
相关产品推荐
相关产品推荐

