我在stackoverflow上尝试了很多答案,但都没有找到解决问题的方法。我创建了一个名为ph_products
和具有名称的自定义分类法ph_category
.
然后,我为该自定义帖子类型创建了一些类别,如下所示:
blue-products
blue-sub-products
green-products
red-products
我需要有如下身体课程:
打开时ph_products-archive
page应该有一个类的主体中有这个slug
当在一个父类别上时,相应的slug应该在body类中
当我在其中一个子类别存档页上时,我还需要父类别类
例如,我在blue-sub-products
我想要的存档页blue-products, ph_products-archive, blue-sub-products
在body类中
当然,我也需要在产品的各个单一视图中包含所有这些类。
我使用这段代码添加所需的类:
(感谢https://alexanderdejong.com/wordpress/add-custom-taxonomies-body-class)
function atp_custom_taxonomy_body_class($classes, $class, $ID) {
$taxonomies_args = array(
\'public\' => true,
\'_builtin\' => false,
);
$taxonomies = get_taxonomies( $taxonomies_args, \'names\', \'and\' );
foreach ($taxonomies as $taxonomy) {
$terms = get_the_terms( (int) $ID, $taxonomy );
if ( ! empty( $terms ) ) {
foreach ( (array) $terms as $order => $term ) {
if ( ! in_array( $term->slug, $classes ) ) {
$classes[] = $term->slug;
}
}
}
}
return $classes;
}
add_filter( \'body_class\', \'atp_custom_taxonomy_body_class\', 10, 3 );
但这会增加一些很奇怪的课程,比如当我在
ph_products-archive
第I页还可以获得张贴在那里的最后一个项目的类别标记,因此如果最后一个项目在类别中
blue-products, blue-sub-products
虽然我不在这些分类页面上,但我也得到了这两个Slug类
或者当我在blue-products-archive
第页我还得到blue-sub-products
身体类的鼻涕虫。
我如何才能只获得如上所述所需的类?