WordPress显示子类别的父类别说明

时间:2021-05-07 作者:revive

我使用类别描述作为父类别,显示在类别上的帖子上方。php页面。

Parent Category page, showing desc above two posts

但是,此描述不会显示在父类别的任何子类别上,并且没有添加到每个子类别中的描述(总共有270多只猫,因此将父类别中的描述复制到子类别中最多也会很乏味!)

Is there way to show the Parent categories desc for the parent and all it\'s subcategories?

1 个回复
SO网友:Álvaro Franz

如果您正在硬编码主题,并且正在编写自己的类别,请选择第一种方法。php模板,首先要知道显示的是什么类别。您可以使用get_queried_object() 为此,将返回当前查询的对象。

$category = get_queried_object();
在您的情况下,您调用的是类别。php模板,以便返回查询的类别对象。

类别对象将是WP term 班正如您在文档中看到的,它包含parent属性。

$parent_cat_id = $category->parent;
然后,您可以获得父类别描述,如下所示:

$description = category_description($parent_cat_id);
查看文档了解category_description()

当然,您还必须检查当前类别是否有父类别。您可以通过一个简单的if语句来实现这一点:

if($category->parent > 0){
$parent_cat_id = $category->parent;
}
请注意,默认情况下,父属性设置为0。这意味着如果你的价值$category->parent 等于0,则该类别没有父类别。它是一个主要类别。

第二种方法如果要使用过滤器,则可以使用category_description 钩子,用于过滤类别描述以供显示。

插入以下内容add_filter() 调用您的函数。php或自定义插件:

function wpse_display_parent_category_description($description, $category_id){

    $category = get_category($category_id);
    
    // Return the parent category description if it\'s a child category
    if($category->parent > 0){
    $parent_cat_id = $category->parent;
    return category_description($parent_cat_id);
    }

    // Or just return the original description if it\'s a primary category
    return $description;
}

add_filter(\'category_description\', \'wpse_display_parent_category_description\', 10, 2);

相关推荐

Regarding Tags And Categories

我想为我的网站使用一个新主题,但问题是,在我当前的主题中,它有特殊的标记,例如“abc标记”,而在我的新主题中,它没有。因此,如果我更改主题,所有帖子都会消失(404错误)。我的问题是,是否可以创建一个具有不同名称的新SPESIFI标记(在本例中为abc标记)?或者,即使我的新主题没有abc标记,也可以将旧的abc标记迁移到新的abc标记吗?我尝试过使用elementor,但仍然没有成功,任何帮助都将非常。。非常非常非常感谢!谢谢大家^_^