我的类别模板有问题。我使用函数get_the_category()
来获取页面的当前类别。
我拿第一个数组来选择帖子并在我的自定义菜单中显示当前类别。
除了一个以外,它适用于我的所有类别。
在这个类别中(与其他类别完全相同,没有特殊性),get_the_category()
返回2个类别而不是1个,并且数组的第一个类别不是好类别。
我该如何解决这个问题?
编辑:这是get_the_category()
函数的返回数组:
Array
(
[0] => WP_Term Object
(
[term_id] => 152
[name] => Press
[slug] => press
[term_group] => 0
[term_taxonomy_id] => 152
[taxonomy] => category
[description] => Press
[parent] => 0
[count] => 46
[filter] => raw
[object_id] => 32182
[cat_ID] => 152
[category_count] => 46
[category_description] => Press
[cat_name] => Press
[category_nicename] => press
[category_parent] => 0
)
[1] => WP_Term Object
(
[term_id] => 178
[name] => The Fundation
[slug] => the-fundation
[term_group] => 0
[term_taxonomy_id] => 178
[taxonomy] => category
[description] =>
[parent] => 0
[count] => 10
[filter] => raw
[object_id] => 32182
[cat_ID] => 178
[category_count] => 10
[category_description] =>
[cat_name] => The Fundation
[category_nicename] => the-fundation
[category_parent] => 0
)
)
我在类别页面the-fundation
中得到了这个答案 0 :(得分:0)
试试这个。
$categories = get_the_category();
$category_id = $categories[0]->cat_ID;
或
get_query_var('cat');
答案 1 :(得分:0)
get_the_category()
返回分配给当前帖子的WP_Term
个对象(类别)数组,但不返回当前类别。如果您在类别页面上,则默认使用该类别中的第一个帖子。
要获取当前类别,最好在类别页面上调用get_queried_object()
:
$category = get_queried_object();
if ( $category instanceof WP_Term ) {
$category_id = $category->term_id;
}