WooCommerce修改Shop面包屑名称与链接:代码无效求助
解决WooCommerce中Shop面包屑URL的问题
嘿,你之前用的woocommerce_page_title钩子确实只能改页面标题,和面包屑完全不搭边,难怪没效果😂。要搞定面包屑的URL或者显示内容,得用专门针对面包屑的钩子才行。
下面给你两个实用方案,按需挑就行:
方案1:直接删掉面包屑里的Shop项
如果你压根不想让Shop出现在面包屑里,用这个代码就能移除它:
add_filter( 'woocommerce_get_breadcrumb', 'remove_shop_breadcrumb_item', 20, 1 ); function remove_shop_breadcrumb_item( $crumbs ) { // 遍历面包屑数组,找到Shop那一项就删掉 foreach( $crumbs as $key => $crumb ) { if( $crumb[0] === 'Shop' ) { // 要是你的面包屑显示的是中文“商店”,就改成对应的文本 unset( $crumbs[$key] ); // 删掉后重新整理数组索引,避免空键问题 $crumbs = array_values( $crumbs ); break; } } return $crumbs; }
方案2:修改Shop面包屑的文本和URL
要是你不想移除,只是想改它的显示文字或者跳转链接,用这个代码:
add_filter( 'woocommerce_get_breadcrumb', 'customize_shop_breadcrumb_item', 20, 1 ); function customize_shop_breadcrumb_item( $crumbs ) { foreach( $crumbs as $key => $crumb ) { if( $crumb[0] === 'Shop' ) { // 把显示文本改成你想要的,比如“我的分类集合” $crumbs[$key][0] = '我的分类集合'; // 把URL换成你指定的分类页面链接,替换成你的分类别名就行 $crumbs[$key][1] = get_term_link( 'your-category-slug', 'product_cat' ); break; } } return $crumbs; }
注意:代码里的your-category-slug要换成你实际的分类别名,比如你有个“数码产品”分类,别名是digital-products,就替换成这个。
另外,如果你想彻底不让用户访问主Shop页面,还可以加个跳转规则,用户一进Shop页面就自动跳转到指定分类:
add_action( 'template_redirect', 'redirect_shop_page_to_category' ); function redirect_shop_page_to_category() { if( is_shop() ) { // 同样替换成你要跳转的分类URL wp_redirect( get_term_link( 'your-category-slug', 'product_cat' ), 301 ); exit; } }
最后提醒下:这些代码都可以加到主题的functions.php文件里,或者用代码片段插件来添加,千万别直接改WooCommerce的核心文件,不然插件更新后你的修改就没啦!
内容的提问来源于stack exchange,提问作者Humble Val
相关产品推荐
相关产品推荐

