隐藏单父子类别存档页面WooCommerce上的子类别标题

时间:2016-10-03 12:23:00

标签: php wordpress woocommerce hook-woocommerce

我正在构建一个包含多个类别的WP电子商务网站&子类别,需要在一个存档页面上删除子类别标题(slug =' paving-brands '):

http://redyearclients.co.uk/PandF/product-category/exterior-paving/paving-brands/

所有其他类别&子类别页面仍然需要子类别标题,例如此页面保持原样

http://redyearclients.co.uk/PandF/product-category/exterior-paving/paving-stone-types/

非常感谢。

1 个答案:

答案 0 :(得分:1)

更新 - 2018年11月

  

为此目的最简单的方法是制作一个自定义条件函数,您将在相关的相关模板 content-product_cat.php 中使用,其中该子类别标题被挂钩。

1)条件函数

以下是代码:

function is_parent_category( $subcategory_term, $parent_category_term_slug ) {
    $parent_term = get_term( $subcategory_term->parent, $subcategory_term->taxonomy );
    return $parent_term->slug == $parent_category_term_slug ? true : false;
}

此代码位于活动子主题(或主题)的function.php文件中或任何插件文件中。

2)通过您的主题覆盖** content-product_cat.php WooCommerce模板。**

  

如果尚未完成,请在您的活动子主题(或主题)中创建 woocommerce 文件夹。然后从 woocommerce 插件 templates 文件夹中复制一份名为 content-product_cat.php 的文件,在新创建的 woocommerce 文件夹。

打开/修改此复制的 content-product_cat.php 模板文件。

替换以下行:

do_action( 'woocommerce_shop_loop_subcategory_title', $category );

由此:

if( ! is_parent_category( $category, 'exterior-paving' ) ) {
    do_action( 'woocommerce_shop_loop_subcategory_title', $category );
}

保存,你完成了。现在,如你所愿,所有的品牌头衔只在“铺设品牌”上。档案页面将被删除。

此代码经过测试且功能齐全。

ADDITION:处理多个父类别slu ::

要处理多个父类别slugs,请使用以下代码(来自一系列slu)

function is_parent_category( $subcategory_term, $parent_category_term_slugs ) {
    $parent_term = get_term( $subcategory_term->parent, $subcategory_term->taxonomy );
    return in_array($parent_term->slug, $parent_category_term_slug ) ? true : false;
}

USAGE 示例:

// Reminder: $category is a WP_Term object
if ( is_parent_category( $category, array( 'clothing', 'posters' ) ) {
    // Do something (matching subcategory)
} else {
    // Do something else (no matching subcategory)
}
相关问题