Php 从“店铺、类别和标签”页面删除woocommerce面包屑

Php 从“店铺、类别和标签”页面删除woocommerce面包屑,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我正在尝试从我的店铺、分类和标签页面中删除面包屑。但什么都不管用 add_filter( 'woocommerce_before_main_content', 'remove_breadcrumbs'); function remove_breadcrumbs() { if(!is_product()) { remove_action( 'woocommerce_before_main_content','woocommerce_breadcrumb', 20, 0);

我正在尝试从我的店铺、分类和标签页面中删除面包屑。但什么都不管用

add_filter( 'woocommerce_before_main_content', 'remove_breadcrumbs');
function remove_breadcrumbs() {
    if(!is_product()) {
        remove_action( 
'woocommerce_before_main_content','woocommerce_breadcrumb', 20, 0);
    }
}

我想从这里开始,但我不知道缺少了什么。

通过CSS,您可以这样做:

.woocommerce-page section#title {
  display: none;
}
使用CSS删除面包屑不是正确的解决方案,因为它仍然在页面上(但隐藏),并且在页面加载时需要一些时间

在活动主题文件夹中查找functions.php,并在文件末尾添加以下代码:

// Remove breadcrumbs from shop & categories
add_filter( 'woocommerce_before_main_content', 'remove_breadcrumbs');
function remove_breadcrumbs() {
    if(!is_product()) {
        remove_action( 'woocommerce_before_main_content','woocommerce_breadcrumb', 20, 0);
    }
}
使用我们可以建立自己的逻辑。例如,上面的代码正在删除shop和categories页面上的面包屑,但将其保留在single product页面上

您可以删除商店页面上的面包屑,但将其保留在类别中:

// Remove breadcrumbs only from shop page
add_filter( 'woocommerce_before_main_content', 'remove_breadcrumbs');
function remove_breadcrumbs() {
    if(!is_product() && !is_product_category()) {
        remove_action( 'woocommerce_before_main_content','woocommerce_breadcrumb', 20, 0);
    }
}
或者,您也可以按页面id或页面段塞删除:

add_action('template_redirect', 'remove_page_breadcrumbs' );
function remove_page_breadcrumbs(){
    if (is_page('YOUR_PAGE_ID_OR_SLUG'))
    remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20, 0);
}

首先,主内容之前的
woocommerce\u是一个动作挂钩,因此需要
add\u action()
而不是
add\u filter()
。现在很多主题都在面包屑上进行定制,因此不可能再像代码中那样删除操作。通常,你需要在主题中找出关于面包屑的变化,以便能够删除它们……例如,店面主题就是这样。