我认为我做错了,但如果我做了:
if(have_posts()){
$category_id = get_query_var(\'cat\');
var_dump($category_id);
while (have_posts()){
the_post();
}
}
var转储返回为空。为什么?有没有更好的方法来获取循环中的当前类别对象?同样的问题也适用于标签。如果这是一个
is_tag()
?
最合适的回答,由SO网友:s_ha_dum 整理而成
get_query_var
将从主查询中获取类别,并且只为某些页面设置类别,例如类别存档。它不是为“单个”页面或标记存档或许多其他“页面”子项设置的。
该值get_query_var
returns类似于“search”变量。它将在指示查询查找特定类别中的帖子时设置。它并不反映循环中当前帖子的值,当然如果get_query_var(\'cat\')
则应将所有职位分配给该类别。
您想要获取循环中当前帖子的类别是get_the_category
, 但它应该在the_post
. get_the_tags
对于标记和更通用的get_the_terms
可用于任何分类法。