我正在建立一个具有多个类别和子类别的WP电子商务网站,并且需要仅在一个存档页面上删除这些子类别的标题。
所有其他类别和子类别页面仍需要子类别标题。
非常感谢。
更新- 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 );
}
保存,您完成了。现在,如您所愿,所有仅在“铺装品牌”存档页面上的品牌名称将被删除。
该代码已经过测试并且功能齐全。
附加:处理多个父类别子段:
要处理多个父类别子弹,请改用以下内容(来自子弹数组):
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;
}
用法示例:
// 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)
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句