如果要检索特定帖子类型的所有已注册分类中的所有术语,可以使用如下函数。
function termsByTaxonomiesPostType( $postType ) {
if ( ! post_type_exists( $postType ) ) {
return [];
}
$list = [];
$taxonomies = get_object_taxonomies( $postType );
if ( empty( $taxonomies ) ) {
return [];
}
foreach ( $taxonomies as $taxonomy ) {
$terms = get_terms( [
\'taxonomy\' => $taxonomy,
\'fields\' => \'all\',
] );
// Not an array if you pass \'count\' as value for \'fields\'.
if ( ! is_array( $terms ) || is_wp_error( $terms ) ) {
continue;
}
$list[ $taxonomy ] = [];
// Note: if you want \'id=>slug\', \'id=>name\', \'names\', \'id=>parent\', \'ids\', \'slugs\' only
// You dont need to perform this.
foreach ( $terms as $term ) {
$list[ $taxonomy ] = array_merge(
$list[ $taxonomy ],
[
$term->name => $term->slug,
]
);
}
}
return $list;
}
您的列表将包含一个分类法列表,对于每个分类法,将包含一个键=>值对列表,其中键是
name
术语和值
slug
.
请注意,如果只想检索“id=>slug”、“id=>name”、“names”、“id=>parent”、“ids”、“slug”,则无需执行额外的循环,因为WordPress会为您执行。
要检索上面列出的关联之一,只需将字符串设置为键的值fields
.