我没有主商店页面,只有商品类别。 Woocommerce面包屑始终在需要删除的面包屑中显示“商店”踪迹。在Woo文档中,我只能找到有关如何更改“ home”子句或定界符,或如何完全删除面包屑的信息。我如何简单地删除“购物”线索?
编辑:我不想更改/更改“商店”步道的名称/链接,而是将其完全删除!
答案 0 :(得分:5)
这对我有用,看起来woocommerce考虑了屑数组中的索引。
add_filter('woocommerce_get_breadcrumb', 'remove_shop_crumb', 20, 2);
function remove_shop_crumb($crumbs, $breadcrumb)
{
$new_crumbs = array();
foreach ($crumbs as $key => $crumb) {
if ($crumb[0] !== __('Shop', 'Woocommerce')) {
$new_crumbs[] = $crumb;
}
}
return $new_crumbs;
}
我希望这可以帮助某人 谢谢
答案 1 :(得分:4)
要从Woocommerce面包屑中完全删除“商店”,请使用以下命令:
add_filter( 'woocommerce_get_breadcrumb', 'remove_shop_crumb', 20, 2 );
function remove_shop_crumb( $crumbs, $breadcrumb ){
foreach( $crumbs as $key => $crumb ){
if( $crumb[0] === __('Shop', 'Woocommerce') ) {
unset($crumbs[$key]);
}
}
return $crumbs;
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。
答案 2 :(得分:1)
要完全控制Breadcrubs的输出,我建议复制-> plugins / woocommerce / global / breadcrumb.php中的面包路径文件。 将其放在您的主题文件夹/woocommerce/global/breadcrumb.php
我的默认面包屑看起来像这样: “主页»商店»主页»类别»子类别»产品” 家由于某种原因出现了两次。以下是来自Breadcrumb.php的代码,该代码显示了如何删除“首页”和“商店”的第一个外观
if ( ! empty( $breadcrumb ) ) {
echo $wrap_before;
foreach ( $breadcrumb as $key => $crumb ) {
echo $before;
//Every crumb have a $key which starts at 0 for the first crumb.
//Here I simply skip out of the loop for the first two crumbs.
//You can just echo the $key to see what number you need to remove.
if( $key === 0 || $key === 1 ){
continue;
}
if ( ! empty( $crumb[1] ) && sizeof( $breadcrumb ) !== $key + 1 ) {
echo '<a href="' . esc_url( $crumb[1] ) . '">' . esc_html( $crumb[0] ) . '</a>';
} else {
echo esc_html( $crumb[0] );
}
echo $after;
if ( sizeof( $breadcrumb ) !== $key + 1 ) {
echo ' » ';
}
}
echo $wrap_after;
}
要更改URL,只需在给定标记中为给定的$ key或crumb [0]值设置一个新值。 如果您只希望在商店中的特定位置进行此操作,则只需使用woocommerce条件函数,例如:
if(is_product()){
if( $key === 0 || $key === 1 ){
continue;
}
}
如果在单个产品页面上,则仅除去前两个碎屑。在https://docs.woocommerce.com/document/conditional-tags/
中查看更多信息答案 3 :(得分:0)
// Remove shop from breadcrumbs
function my_remove_shop_from_breadcrumbs( $trail ) {
unset( $trail['shop'] );
return $trail;
}
add_filter( 'wpex_breadcrumbs_trail', 'my_remove_shop_from_breadcrumbs', 20 );
在function.php中添加代码
答案 4 :(得分:0)
此代码段更简单:
add_filter('woocommerce_get_breadcrumb', 'remove_breadcrumb_home');
function remove_breadcrumb_home( $breadcrumb )
{
array_shift($breadcrumb);
return $breadcrumb;
}