存档页面上显示了错误的类别易读名称

时间:2017-07-14 作者:Destiny2Gamer

在我的博客www.gamerwithadegree上。com我有几个具有唯一名称的类别。

我在函数中有一个小函数。php

function gwad_cat_name(){

    $categories = get_the_category();

if ( ! empty( $categories ) ) {
    echo esc_html( $categories[0]->category_nicename );   
}

};
此函数获取类别的好名称,以便我可以将其添加为一个类,如下所示

<div class=\'archive-header <?php gwad_cat_name() ?>\'>
这允许我在css中为每个类别定义不同的标题背景。

如果你访问博客,你会看到PlayStation 4类别显示了类别Destiny 2的好名字,我不知道为什么会发生这种情况。

我最近只使标题(logo nav等)变粘,并在归档模板中添加了一个包装div。归档包装器只是为了能够向下推一点内容,以补偿固定的标题。

我的本地测试站点运行良好,代码相同,我不知道为什么会发生这种情况。

我已经清除了W3 total cache中的所有缓存,更新了permalinks并检查了类别admin中的slug,slug没有更改。

有人知道为什么会这样吗?

非常感谢。

1 个回复
最合适的回答,由SO网友:mrmadhat 整理而成

您的功能没有正常工作的原因是,它正在获取循环中加载的最后一篇帖子的类别,即当前帖子“PS4 Pro Glacier White Destiny 2 Bundle Announced”。我猜这篇文章分为ps4和destiny-2两类。

要自定义当前类别,可以创建名为category slug的新模板。php(参见下面的类别模板codex链接)。

或者,您可以使用get_queried_object() 它将返回当前查询的对象(或null),请参阅下面的codex链接了解此函数。

您可以使用类似于以下内容的代码:

function wpse_273435_check_current_category() {
    $term = get_queried_object();

    if($term !== null) {
        $term = $term->slug;

        if(\'your-cat-slug\' === $term) {
            //do your thing
        }
    }
}
或者如果你属于这一类。php您可以在不使用该函数的情况下使用get_template_part() 并根据当前查询的类别加载不同的模板部件。

https://developer.wordpress.org/reference/functions/get_template_part/https://codex.wordpress.org/Category_Templateshttps://codex.wordpress.org/Function_Reference/get_queried_object

结束

相关推荐

Theme for subcategories

我正在使用相同菜单处理类别(城市)和子类别(例如:汽车、动物、房屋)。因此,现在我的类别结构如下所示:- London -- cars -- animals -- houses - Manchester --cars --animals --houses 每个子类别的slug(似乎它们必须是唯一的)的名称如下category_name + subcategory_name 看起来像london-cars, manchester-