列出从自定义 post 类型分配的所有分类法
List all taxonomies assigned from a custom post type
我真的很想在这里寻求帮助,从昨天开始就一直在尝试这样做,但仍然没有成功,所以这就是我想要实现的目标
Collection = 自定义 post 类型
Material = 分配给 "collection"
的自定义分类法
- Mat1 = 术语
- Mat2 = 术语
正文 = 分配给 "collection"
的自定义分类法
- 正文 1 = 术语
- 正文 2 = 术语
颜色 = 分配给 "collection"
的自定义分类法
- 颜色 1 = 术语
- 颜色 2 = 术语
结构将是这样的
- Material
- Mat1
- Mat2
- Body
- Body1
- Body2
- Color
- Color1
- Color2
我得到了这段代码,但它根本不起作用
$post_type = 'collection';
$taxonomies = get_object_taxonomies( (object) array( 'post_type' => $post_type, 'hide_empty' => true ) );
foreach( $taxonomies as $taxonomy ){
echo $taxonomy->name;
$terms = get_terms( $taxonomy );
foreach( $terms as $term ){
echo '<li>';
echo $term->name;
echo '</li>';
}
}
如果您查看 get_object_taxonomies()
的文档,您会注意到一些事情,即出于您的目的,您需要将 post 类型的名称作为第一个参数传递,然后用第二个得到对象。您似乎也在混淆 get_object_taxonomies()
和 get_terms()
.
的论点
还有 get_terms()
函数,如果您使用的是 WP 4.5 或更高版本,您需要在 $args
数组中传递分类法。
$taxonomies = get_object_taxonomies( 'collection', 'objects' );
foreach( $taxonomies as $taxonomy ){
echo $taxonomy->name;
$terms = get_terms(array(
'taxonomy' => $taxonomy->name,
'hide_empty' => false,
));
foreach( $terms as $term ){
echo "<li>{$term->name}</li>";
}
}
我真的很想在这里寻求帮助,从昨天开始就一直在尝试这样做,但仍然没有成功,所以这就是我想要实现的目标
Collection = 自定义 post 类型
Material = 分配给 "collection"
的自定义分类法- Mat1 = 术语
- Mat2 = 术语
正文 = 分配给 "collection"
的自定义分类法- 正文 1 = 术语
- 正文 2 = 术语
颜色 = 分配给 "collection"
的自定义分类法- 颜色 1 = 术语
- 颜色 2 = 术语
结构将是这样的
- Material
- Mat1
- Mat2
- Body
- Body1
- Body2
- Color
- Color1
- Color2
我得到了这段代码,但它根本不起作用
$post_type = 'collection';
$taxonomies = get_object_taxonomies( (object) array( 'post_type' => $post_type, 'hide_empty' => true ) );
foreach( $taxonomies as $taxonomy ){
echo $taxonomy->name;
$terms = get_terms( $taxonomy );
foreach( $terms as $term ){
echo '<li>';
echo $term->name;
echo '</li>';
}
}
如果您查看 get_object_taxonomies()
的文档,您会注意到一些事情,即出于您的目的,您需要将 post 类型的名称作为第一个参数传递,然后用第二个得到对象。您似乎也在混淆 get_object_taxonomies()
和 get_terms()
.
还有 get_terms()
函数,如果您使用的是 WP 4.5 或更高版本,您需要在 $args
数组中传递分类法。
$taxonomies = get_object_taxonomies( 'collection', 'objects' );
foreach( $taxonomies as $taxonomy ){
echo $taxonomy->name;
$terms = get_terms(array(
'taxonomy' => $taxonomy->name,
'hide_empty' => false,
));
foreach( $terms as $term ){
echo "<li>{$term->name}</li>";
}
}