从商店、类别和标签页面中删除 woocommerce 面包屑

Flo*_*ana 2 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Guf*_*san 8

通过 CSS 你可以这样做:

.woocommerce-page section#title {
  display: none;
}
Run Code Online (Sandbox Code Playgroud)

使用 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

使用WooCommerce 条件标签,我们可以构建自己的逻辑。例如,上面的代码正在删除商店和类别页面上的面包屑,但将其保留在单个产品页面上。

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

// 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

或者您也可以通过页面 id 或页面 slug 删除:

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);
}
Run Code Online (Sandbox Code Playgroud)