您是否只想显示 WordPress 帖子的父类别?
默认情况下,大多数 WordPress 主题将列出与帖子关联的所有类别。但是,有些用户可能只想显示父类别,而排除子类别。
在本文中,我们将向您展示如何修改 WordPress 帖子循环以仅在单个帖子上显示父类别。
何时在 WordPress 中仅显示父类别
许多网站所有者使用父类别和子类别为其网站创建网站结构。
例如,旅游博客可能具有按类别组织的旅游目的地,其中每个地区是父类别,城市是子类别。
同样,美食博客可能会发布按父子类别组织的食谱。例如,父类别可以是美食类型,子类别可以是菜肴类型。
现在,大多数 WordPress 主题使用the_category() 模板标签来列出与帖子相关的所有类别。
这个功能很高效,但它会按字母顺序显示所有类别,完全忽略父/子关系。
话虽如此,让我们看看如何更改此行为并仅在 WordPress 循环中显示父类别。
在 WordPress Post Loop 中仅显示父类别
对于本教程,您需要编辑 WordPress 主题文件。如果您之前没有这样做过,请查看我们关于如何在 WordPress 中复制和粘贴代码片段的文章。
首先,您需要将以下代码添加到主题的functions.php文件或特定于站点的插件中。
function wpb_get_parent_terms($taxonomy = ‘category’){ $currentPost = get_post(); $terms = get_the_terms($currentPost->ID, $taxonomy); if (is_wp_error($terms)) { /** @var \WP_Error $terms */ throw new \Exception($terms->get_error_message()); } $map = array_map( function ($term) use ($taxonomy) { return ‘
此代码也适用于所有其他分类法。例如,WooCommerce 产品类别或您可能拥有的任何自定义分类。
只需像这样修改代码:
此代码将显示 WooCommerce 商店的产品类别,并且仅显示产品的父类别或独立类别。
如果要显示自定义分类法,请将 product_cat 替换为您的自定义分类法名称。
我们希望本文能帮助您了解如何仅显示 WordPress 帖子的父类别。您可能还想查看这些其他 WordPress 类别的技巧和技巧,或者查看我们的指南,了解如何在不编写代码的情况下创建自定义 WordPress 页面。