Code前端首页关于Code前端联系我们

WordPress 二次开发:分类法终极指南

terry 2年前 (2023-09-24) 阅读数 60 #后端开发

分类法已成为 WordPress 开发者工具包中更加有用的工具。在较高的层次上,我们可以将分类法视为将事物分组在一起的方法。在 WordPress 平台中,分类法是一种对帖子、自定义帖子类型或链接等内容进行分组的机制。

什么是 WordPress 分类法?

如果您查看官方 WordPress 法典,您会发现 WordPress 分类法被定义为“对所有内容进行分组的机制”。 简而言之,WordPress 分类法允许您根据帖子共有的特征对帖子进行分组。

例如,假设您经营一个有关过去 40 年流行音乐的博客。您很可能希望将博客文章分组为特定类型。分类法是允许您进行此类分组的方法。分类法可以让用户在浏览您的博客时获得更简单、更轻松的体验,从而帮助改善用户体验。 WordPress二次开发:分类法(Taxonomies)终极指南

4 种 WordPress 分类法

WordPress 中用于对帖子进行分组的最常见的两种分类法是标签和类别。两者都属于同一分类法的总体范围。

一般来说,WordPress 有四种分类法,您可以在对博客文章进行分组时使用。

在这里我们逐一查看。

1。类别

类别允许您将文章分为不同的层次类别。您可以通过两种不同的方式对文章进行分类。

第一种方法,登录 WordPress 仪表板并导航到“帖子”>“类别”。在这里您可以定义类别并添加定义的子类别和子类别。

按类别对帖子进行分组的第二种方法是在 WordPress 仪表板中,导航到帖子 > 撰写帖子。如果您查看可视化编辑器旁边的面板,您会发现可以直接从那里添加类别。

2. 标签

标签与类别类似,可以让您对帖子进行分组。不同之处在于标签没有层次结构。

标签是将相关文章分组在一起的简单参数。他们关注博客内容的细节而不是整体主题。

让我们回到上面提到的音乐博客。假设您想为您的音乐博客内容创建流派和子流派。最好的办法就是用分类法来对“90年代嘻哈明星”进行分类。这种分组分类法将支持层次结构。

然后,为了进一步将您的内容细分为子流派,您可以向内容添加特定于艺术家的标签,例如“Snoop Dogg”和“Ice Cube”。

使用标签对内容进行分组的最佳部分是,例如,分组包括包含“Snoop Dogg”标签的所有内容。

换句话说,即使某些“Snoop Dogg”内容与“90年代嘻哈明星”不属于同一类别,可能属于“永不消失的艺术家”类别,但它们都有相同的特点“史努比狗狗”标签。

要创建标签,请遵循与创建类别类似的路径。这可以通过导航到文章 > 标签或在可视化编辑器旁边的面板中来完成。

您还可以在这些区域中定义段别名和描述。

需要注意的是,所有博客文章都需要类别定义。然而,标签是完全可选的。

所有文章必须至少有一个类别才能发表。默认情况下,如果您没有定义特定类别,WordPress 会自动将文章放入“未分类”类别中。

请记住,“未分类”类别仍然是一个类别。

您网站的用户看不到其余两个分类法。尽管它们不经常使用,但绝对值得一提并考虑如何在您的 WordPress 网站上使用它们。

3。链接分类

注意:从 WordPress 3.5 开始,新安装的 WordPress 后端默认不再显示“链接”内容类型。因此,不显示链接类别。有关详细信息,请参阅 《升级WordPress 3.5后 如何恢复链接管理功能》

这是一个 WordPress 分类法,可让您对链接进行分类。

如果您是一位博主,可以在博客文章上链接到许多内部和外部资源,您会发现链接分类的分类非常有用。

4。帖子格式分类法

帖子格式分类法允许您按视频、音频、标准等类型对文章进行排序。

注意:只有当你的主题支持post_format文章格式时,你才会在爱心背景中看到相关的设置选项。

WordPress 类别模板

当网站访问者单击指向标签、类别或自定义分类的超链接时,WordPress 会按时间倒序显示一页文章,并按特定分类进行筛选。

默认情况下,显示页面是使用index.php模板文件生成的。这意味着您创建一个可选模板文件来优化并覆盖index.php 模板文件。

这里我们解释如何创建和使用这些分类模板。

类别模板层次结构

模板层次结构是 WordPress 用于确定帖子显示顺序的工具。

category.phptaxonomy.php 和 -标签。与未过滤的文章进行区分或使用分类法过滤的文章查看方式不同。

请记住,“帖子”是指任何帖子类型,例如页面、自定义帖子类型或文章。基本上,它们是允许您定位特定 WordPress 分类法或分类术语的文件。

这些分类模板文件的示例是:

  • Taxonomy-{Taxonomy}-{term}.php
  • taxonomy-{Taxonomy}.php}.php}.php 。 tag - {id}.php
  • category-{slug}.php
  • category-{ID}.php

这可以专门用于动物分类中名为“新闻”的所有文章页面格式看起来与过滤的文章和其他文章不同。

archive.php 类别模板提供了最通用的控件形式。它为您的所有档案提供特定的布局。此页面显示您的项目列表。

类别层次结构

当谈到类别时,WordPress 会查看 Category-{slug}.php 文件。如果没有,WordPress 会尝试查找下一个连续层次结构级别的文件,即 category-{ID}.php,依此类推。

如果 WordPress 找不到 archive.php 模板文件或其他专用模板,它将自动恢复为 index.php 的默认行为。

类别层次结构如下所示:

  1. category-{slug}.php:例如,如果类别的 slug 名为“pepperoni”,则 WordPress 会查找名为category-pepperoni.php 的文件。
  2. category-{ID}.php:例如,如果您的类别 ID 为“8”,WordPress 将查找名为category-9.php 的文件。
  3. category.php
  4. archive.php
  5. index.php

标签层次结构 {slug}.php

文件。如果 WordPress 找不到它,它会在下一个层次结构级别中查找所需的文件,即 tag-{id}.php 等。

如果 WordPress 没有 archive.php 模板文件或私有模板,它将恢复为 index.php 的默认行为。

标签层次结构如下所示:

  1. tag-{slug}.php:例如,如果标签有一个名为“drpepper”的标签,WordPress 将查找名为 tag.drpepper.php 的文件。
  2. tag-{id}.php:例如,如果标签的ID为“3”,WordPress将查找名为tag-3.php的文件。
    1. tag.php
    2. archive.php
    3. index.php

    自定义分类层次结构omy类似的分类层次结构超出了Taxi层次结构。

    WordPress 首先搜索Taxonomy-{Taxonomy}-{term}.php。如果找不到,它将在层次结构中查找下一个文件,即 Taxonomy-{Taxonomy}.php,依此类推。

    如果 WordPress 找不到 archive.php 模板文件或私有模板,它将恢复为 index.php 的默认行为。

    自定义分类层次结构如下:

    1. Taxonomy-{Taxonomy}-{term}.php:例如,如果您的分类称为“税收”,同一分类的术语是“州级”, WordPress 是“州级”,将查找名为taxonomy-taxes-statelevel.php 的文件。 。
    2. Taxonomy-{Taxonomy}.php:例如,如果分类法称为“taxes”,WordPress 将查找名为taxonomy-taxes.php 的文件。
    3. taxonomy.php
    4. archive.php
    5. index.php

    如何创建分类模板设计

  3. archive.php
  4. index.php

您的内容?

最好不要从空文件开始。相反,只需复制层次结构中的下一个文件(如果存在)。

假设已经创建了archive.php,创建一个副本并将其命名为category.php。然后编辑该文件以满足您的特定设计目标和需求。

如果您还没有 archive.php 文件,您的主题中可以有一个 index.php 文件,复制它并将其用作起点。

创建任何类别模板文件时可以遵循相同的步骤。只需使用category.php、index.php、tag.php 或archive.php 的副本作为起点。

如何向类别页面添加文本

如果您想向类别页面添加文本,有多种方法。

文章上方的静态文本

当您想要在类别页面上的文章列表之前显示静态文本时,请使用此方法(所有类别中的所有文章的文本始终保持相同)。

打开文件。在模板文件的循环部分上方,只需插入以下代码:

  1. 这是显示在类别页面顶部的文本。

该文字仅显示在该类别文章的存档页面上。

如何在某些类别页面上放置不同的文本

如果您想在访问者使用的特定类别页面上显示不同的文本,请考虑直接在主category.php文件中间放置一些默认文本。然后,您可以创建许多独特的 category-{slug}.php 文件,每个文件都有自己的文本版本。问题是这会创建很多主题文件。

要解决此问题,请使用条件标签。

循环结束后,再次添加以下代码:

  1. 这是显示类别 A 的文本

  2. 这是显示类别 B 的文本

此代码将:

  • 检查用户是否有权访问类别 A。如果是,则显示文本的第一部分
  • 检查用户是否访问类别 B。文本的第二部分
  • 如果用户访问 A 和 B 以外的类别,那么默认文本将显示

如何仅在存档的第一页显示文本

如果您的文章太多适合单个存档页面,类别分为多个页面。在这种情况下,您可能希望在结果的第一页上向用户显示静态文本。

为此,您需要使用 PHP 的 if 语句来查找 WordPress 变量 $paged 的值。

这就是您将粘贴到“循环”上方的内容:

  1. 出现在存档第一页上的文本

当您使用此代码时,代码会询问显示的页面是否是存档的第一页。如果启用,将显示特定于第一页的文本。

如果没有,则显示下一页的文本。

自定义 WordPress 分类法

如果您查看 WordPress 可视化编辑器的右侧,您将看到“类别”和“标签”选项卡。但是,如果您想拥有自己的自定义分类法(例如“艺术家”)怎么办?

这就是自定义 WordPress 分类法发挥作用的地方。此功能允许您自定义所有分类法以完全满足您的开发需求。

例如,考虑为附近的一家小餐馆建立一个 WordPress 网站。与其使用称为“类别”的通用分类法,不如使用自定义分类法(例如“开胃菜”和“主菜”)不是更好吗?

每个自定义分类法都可以进一步细分为子类别,例如“披萨”和“意大利面”。

相同的概念适用于标签分类法。您可以为“Extreme”或“Special Offers”等项目添加标签。

创建自定义 WordPress 分类法

可以通过两种不同的方式创建自定义 WordPress 分类法。它们可以通过直接编码或使用几个不同的 WordPress 插件来创建。

使用插件创建自定义 WordPress 分类法

使用插件是迄今为止创建自定义 WordPress 分类法最简单的方法。事实上,您根本不需要太多的技术技能就可以做到这一点。

创建自定义 WordPress 分类法的最佳插件是 Pod 和自定义帖子类型 UI。

我们将逐步介绍如何使用自定义帖子类型 UI 插件创建自定义 WordPress 分类法。 WordPress二次开发:分类法(Taxonomies)终极指南

  1. 下载、安装并激活自定义帖子类型 UI 插件。
  2. 导航至 CTP UI > 添加/编辑分类法
  3. 在框中填写您要使用的 WordPress 分类名称。在本例中,假设我们使用“艺术家”作为类别。
  4. 选择您要应用新 WordPress 分类法的帖子类型。
  5. 单击底部附近的“添加分类法”按钮。
  6. 现在,导航至“帖子”>“撰写帖子”,您将在可视化编辑器旁边看到新的 WordPress 分类法。

您可能会注意到您的新分类法是一个名为“艺术家”的标签。但是如果您想创建类别而不是标签怎么办?答案比你想象的要简单。

您所需要做的就是向下滚动一点并将“Hierarchical”更改为“true”。现在,您的自定义分类是一个类别而不是标签。

通过向functions.php 添加代码来创建自定义WordPress 分类法

如果您是代码新手,在创建自定义WordPress 分类法时最好坚持使用插件。但是,如果您是喜欢尝试各种东西的人之一,这将向您展示如何将正确的代码添加到网站的functions.php 文件中。

作为高级 WordPress 用户,您只需将几行代码添加到 WordPress 主题目录中的 WordPressfunctions.php 文件中即可。

请注意。非层次分类法的代码与层次分类法不同。

在执行此过程之前,请确保运行 WordPress 备份插件,如果在此过程中出现中断,您可以使用该插件立即恢复您的网站。

现在,下面显示了分层分类法和非分层分类法所需的代码示例。 之间最大的区别是'分层'参数。如果值为 true,则它是分层的。如果值fal se不是分层。

分层分类法(类别):示例代码

  1. /**
  2. * 为文章类型“书籍”注册新的分类法类型
  3. * https://developer.wordpress.org/reference/functions/register /
  4. * /
  5. function wpdocs_create_Book_taxonomy_Gener () {
  6. // 注册层次分类法 (
  7. "
  8. $taxonomy General name', 'textdomain' ),
  9. 'sing ular_name' => _x ( '流派 ', '分类单数名称', 'textdomain' ),
  10. 'search_items' => __ ( '搜索流派' 'textdomain' ),
  11. 'all_items' => __( '所有流派', 'textdomain' ) ,
  12. 'parent_item' => __( '父类型', 'textdomain' ),
  13. 冒号 'parent_item_ ' => __( '父类型:', 'textdomain' ),
  14. 'edit_item' => __( '更改流派', 'textdomain' ),
  15. 'update_item' => __( '更新流派' , 'textdomain' ),
  16. 'add_new_item' => __( '添加新内容流派', 'textdomain ' ),
  17. 'new_item_name' => __( '新流派名称', 'textdomain' ), 'menu_name' => __( '流派', 'textdomain' ),
  18. );
  19. $args = 数组(
  20. 'herarchical' => true,
  21. 'labels' => $labels,
  22. 'show_ui' => true,
  23. 'show_admin_column' => true,
  24. 'query_var' => true, ' rewrite' => array( 'slug' => '流派' ),
  25. );
  26. register_taxonomy( '流派', array( '图书' ), $args ); }
  27. // 将函数挂载到init钩子上,使代码生效
  28. add_action( 'init', 'wpdocs_create_book_taxonomy_genre', 0 );

非分层分类): /**

  • * 注册新文章类型“book”的分类法编写器
  • * https://developer.wordpress.org/reference/functions/register_taxonomy/
  • */
  • function wpdocs_nomate_bookwriter {
  • // 注册非分层分类法 (类似于标签)
  • $labels = array(
  • 'name' => _x( 'writer', '分类通用名称', 'textdomain '),
  • 'singular_name' => _x( 'writer ' , '分类单数名称', 'textdomain' ),
  • 'search_items' => __( '搜索作家', 'textdomain' ),' '流行 => __( '热门作家', 'textdomain' ) ,
  • 'all_items' => __( '所有作者', 'textdomain' ),
  • 'parent_item' => null,
  • 'parent_item_colon' => null,
  • 'edit_item' => __( '编辑编写器', 'textdomain' ),
  • 'update_item' => __( '文本编写器', ') ,
  • 'add_new_item' => __( '添加新作家', 'textdomain' ),
  • 'new_item_name' => __( '新作家姓名', 'textdomain' ),的 'mate' > __ ( '用逗号分隔作家', 'textdomain' ),
  • 'add_or_remove_items' => __( '添加或删除作家', 'textdomain' ),
  • 'choose_from_most_used' ('' => 最常用的作家' , 'textdomain' ),
  • 'not_found' => __( '未找到作者。', 'textdomain' ),
  • 'menu_name' => __( 'Writer', 'textdomain' ; 'show_admin_column ' => true,
  • 'update_count_callback' => '_update_post_term_count',
  • 'query_var' => true,
  • ' => '重写' ' ='lug ),
  • );
  • register_taxonomy( 'writer', 'book', $args );
  • }
  • //将函数挂载到init钩子上,使代码生效;
  • 然后,如果您想在 WordPress 可视化编辑器中显示新分类法,请从编辑器中打开 single.php 并复制以下代码:

    1. the_terms( $post-ID, 'genre', 'Genres:' , ', ', ' ' );

    如果整个过程正确完成,您现在将在可视化编辑器中看到一个名为“流派”的新分类

    如果您想了解更多详细信息,请参阅 https ://developer.wordpress.org/reference/functions/register_taxonomy/

    摘要:了解 WordPress 分类法

    WordPress 分类法是一种用于对 WordPress 网站上的内容进行分组的工具。分类法可用作广泛主题的分类,而标签可用于这些主题内的较小细节。

    您还可以通过使用某些特定的 WordPress 插件或向functions.php 文件添加代码来创建自定义分类法。

    如果您以正确的方式使用 WordPress 分类策略,它将改​​善您网站的用户体验和整体性能。

    版权声明

    本文仅代表作者观点,不代表Code前端网立场。
    本文系作者Code前端网发表,如需转载,请注明页面地址。

    发表评论:

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

    热门