在WooCommerce中,归档产品是所有产品类别的默认模板。我想为一个父类别及其所有子类别创建一个新的产品类别模板。
我创建了一个新模板archive-foo.php
现在我需要更改里面的代码taxonomy-product_cat.php 并告诉它使用归档foo。php“如果它是我的父类别或其任何子类别”。
这是我的代码taxonomy-product_cat.php:
if (is_product_category( \'foo-category\' ) || cat_is_ancestor_of(19, get_queried_object()->term_id )){ wc_get_template( \'archive-foo.php\' );
} else { wc_get_template( \'archive-product.php\' ); }
目前,它适用于父类别,但没有子类别。任何帮助都将不胜感激。
最合适的回答,由SO网友:LoicTheAztec 整理而成
WordPress功能cat_is_ancestor_of()
为WordPress类别制作,but not 对于作为自定义分类法的WooCommerce产品类别product_cat
.
对于自定义分类法,可以使用WordPressterm_is_ancestor_of()
功能如下:
term_is_ancestor_of( 19, get_queried_object_id(), \'product_cat\' )
因此,在您的代码中:
if ( is_product_category( \'foo-category\' ) || term_is_ancestor_of( 19, get_queried_object_id(), \'product_cat\' ) ) {
wc_get_template( \'archive-foo.php\' );
} else {
wc_get_template( \'archive-product.php\' );
}
这次应该可以了。