我已经将自定义分类法注册为自定义帖子类型的一部分,但是当将其传递给get_categories()
时,它将返回一个空数组。有什么想法吗?
// Register FAQ Categories taxonomy
function bv_faq_register_categories() {
register_taxonomy(
'faq-category',
'faq',
array(
'label' => 'Categories',
'rewrite' => array('slug' => 'faq-category'),
'hierarchical' => true
)
);
}
add_action('init', 'bv_faq_register_categories');
// Category view
$categories = get_categories(array(
'taxonomy' => 'faq-category'
));
$categories
返回一个空数组。
答案 0 :(得分:1)
您改用了get_terms吗?
$categories = get_terms( 'faq-category', array(
'orderby' => 'count',
'hide_empty' => 0
) );
答案 1 :(得分:0)
您的代码看起来还不错。您是否已将此类别分配给任何帖子/帖子类型?
如果没有,您将得到一个空结果。为了进行测试,您可以像这样设置'hide_empty' = false
:
// Category view
$categories = get_categories(array(
'taxonomy' => 'faq-category',
'hide_empty' => false // set it true
));
此外,您可以使用get_terms()
函数。
答案 2 :(得分:0)
就像@AD Styles所说的那样,我将使用自定义分类法的get_terms来扩展一些示例代码:
<?php
$post_type = 'faq-category';
// Get all the taxonomies for this post type
$taxonomies = get_object_taxonomies( (object) array( 'post_type' => $post_type ) );
foreach( $taxonomies as $taxonomy ) :
// Gets every "category" (term) in this taxonomy to get the respective posts
$terms = get_terms( array(
'taxonomy' => $taxonomy,
'parent' => 0
) );
foreach( $terms as $term ) :
echo "<h1>".$term->name."</h1>";
endforeach;
endforeach;
?>