Wordpress - 类别页面中的多个类别

时间:2016-12-22 09:45:49

标签: php wordpress

我的类别模板有问题。我使用函数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

中得到了这个

2 个答案:

答案 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;
}