WordPress 二次开发:分类法终极指南
分类法已成为 WordPress 开发者工具包中更加有用的工具。在较高的层次上,我们可以将分类法视为将事物分组在一起的方法。在 WordPress 平台中,分类法是一种对帖子、自定义帖子类型或链接等内容进行分组的机制。
什么是 WordPress 分类法?
如果您查看官方 WordPress 法典,您会发现 WordPress 分类法被定义为“对所有内容进行分组的机制”。 简而言之,WordPress 分类法允许您根据帖子共有的特征对帖子进行分组。
例如,假设您经营一个有关过去 40 年流行音乐的博客。您很可能希望将博客文章分组为特定类型。分类法是允许您进行此类分组的方法。分类法可以让用户在浏览您的博客时获得更简单、更轻松的体验,从而帮助改善用户体验。
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.php
、taxonomy.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 的默认行为。
类别层次结构如下所示:
- category-{slug}.php:例如,如果类别的 slug 名为“pepperoni”,则 WordPress 会查找名为category-pepperoni.php 的文件。
- category-{ID}.php:例如,如果您的类别 ID 为“8”,WordPress 将查找名为category-9.php 的文件。
- category.php
- archive.php
- index.php
标签层次结构 {slug}.php
如果 WordPress 没有 archive.php 模板文件或私有模板,它将恢复为 index.php 的默认行为。 标签层次结构如下所示: WordPress 首先搜索 如果 WordPress 找不到 archive.php 模板文件或私有模板,它将恢复为 index.php 的默认行为。 自定义分类层次结构如下: 最好不要从空文件开始。相反,只需复制层次结构中的下一个文件(如果存在)。 假设已经创建了archive.php,创建一个副本并将其命名为category.php。然后编辑该文件以满足您的特定设计目标和需求。 如果您还没有 archive.php 文件,您的主题中可以有一个 index.php 文件,复制它并将其用作起点。 创建任何类别模板文件时可以遵循相同的步骤。只需使用category.php、index.php、tag.php 或archive.php 的副本作为起点。 如果您想向类别页面添加文本,有多种方法。 当您想要在类别页面上的文章列表之前显示静态文本时,请使用此方法(所有类别中的所有文章的文本始终保持相同)。 打开文件。在模板文件的循环部分上方,只需插入以下代码: 文件。如果 WordPress 找不到它,它会在下一个层次结构级别中查找所需的文件,即
tag-{id}.php
等。 tag.php
自定义分类层次结构omy类似的分类层次结构超出了Taxi层次结构。
Taxonomy-{Taxonomy}-{term}.php
。如果找不到,它将在层次结构中查找下一个文件,即 Taxonomy-{Taxonomy}.php
,依此类推。 如何创建分类模板设计
您的内容?
如何向类别页面添加文本
文章上方的静态文本
这是显示在类别页面顶部的文本。
该文字仅显示在该类别文章的存档页面上。
如何在某些类别页面上放置不同的文本
如果您想在访问者使用的特定类别页面上显示不同的文本,请考虑直接在主category.php文件中间放置一些默认文本。然后,您可以创建许多独特的 category-{slug}.php
文件,每个文件都有自己的文本版本。问题是这会创建很多主题文件。
要解决此问题,请使用条件标签。
循环结束后,再次添加以下代码:
这是显示类别 A 的文本
这是显示类别 B 的文本
此代码将:
- 检查用户是否有权访问类别 A。如果是,则显示文本的第一部分
- 检查用户是否访问类别 B。文本的第二部分
- 如果用户访问 A 和 B 以外的类别,那么默认文本将显示
如何仅在存档的第一页显示文本
如果您的文章太多适合单个存档页面,类别分为多个页面。在这种情况下,您可能希望在结果的第一页上向用户显示静态文本。
为此,您需要使用 PHP 的 这就是您将粘贴到“循环”上方的内容: 出现在存档第一页上的文本 当您使用此代码时,代码会询问显示的页面是否是存档的第一页。如果启用,将显示特定于第一页的文本。 如果没有,则显示下一页的文本。 如果您查看 WordPress 可视化编辑器的右侧,您将看到“类别”和“标签”选项卡。但是,如果您想拥有自己的自定义分类法(例如“艺术家”)怎么办? 这就是自定义 WordPress 分类法发挥作用的地方。此功能允许您自定义所有分类法以完全满足您的开发需求。 例如,考虑为附近的一家小餐馆建立一个 WordPress 网站。与其使用称为“类别”的通用分类法,不如使用自定义分类法(例如“开胃菜”和“主菜”)不是更好吗? 每个自定义分类法都可以进一步细分为子类别,例如“披萨”和“意大利面”。 相同的概念适用于标签分类法。您可以为“Extreme”或“Special Offers”等项目添加标签。 可以通过两种不同的方式创建自定义 WordPress 分类法。它们可以通过直接编码或使用几个不同的 WordPress 插件来创建。 使用插件是迄今为止创建自定义 WordPress 分类法最简单的方法。事实上,您根本不需要太多的技术技能就可以做到这一点。 创建自定义 WordPress 分类法的最佳插件是 Pod 和自定义帖子类型 UI。 我们将逐步介绍如何使用自定义帖子类型 UI 插件创建自定义 WordPress 分类法。 您可能会注意到您的新分类法是一个名为“艺术家”的标签。但是如果您想创建类别而不是标签怎么办?答案比你想象的要简单。 您所需要做的就是向下滚动一点并将“Hierarchical”更改为“true”。现在,您的自定义分类是一个类别而不是标签。 如果您是代码新手,在创建自定义WordPress 分类法时最好坚持使用插件。但是,如果您是喜欢尝试各种东西的人之一,这将向您展示如何将正确的代码添加到网站的functions.php 文件中。 作为高级 WordPress 用户,您只需将几行代码添加到 WordPress 主题目录中的 WordPressfunctions.php 文件中即可。 请注意。非层次分类法的代码与层次分类法不同。 在执行此过程之前,请确保运行 WordPress 备份插件,如果在此过程中出现中断,您可以使用该插件立即恢复您的网站。 现在,下面显示了分层分类法和非分层分类法所需的代码示例。 之间最大的区别是if
语句来查找 WordPress 变量 $paged 的值。
自定义 WordPress 分类法
创建自定义 WordPress 分类法
使用插件创建自定义 WordPress 分类法
通过向functions.php 添加代码来创建自定义WordPress 分类法
'分层'
参数。如果值为 true
,则它是分层的。如果值fal se
不是分层。 分层分类法(类别):示例代码
/**
* 为文章类型“书籍”注册新的分类法类型
* https://developer.wordpress.org/reference/functions/register /
* /
function wpdocs_create_Book_taxonomy_Gener () {
// 注册层次分类法 (
"
$taxonomy General name', 'textdomain' ),
'sing ular_name' => _x ( '流派 ', '分类单数名称', 'textdomain' ),
'search_items' => __ ( '搜索流派' 'textdomain' ),
'all_items' => __( '所有流派', 'textdomain' ) ,
'parent_item' => __( '父类型', 'textdomain' ),
冒号 'parent_item_ ' => __( '父类型:', 'textdomain' ),
'edit_item' => __( '更改流派', 'textdomain' ),
'update_item' => __( '更新流派' , 'textdomain' ),
'add_new_item' => __( '添加新内容流派', 'textdomain ' ),
'new_item_name' => __( '新流派名称', 'textdomain' ), 'menu_name' => __( '流派', 'textdomain' ),
);
$args = 数组(
'herarchical' => true,
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true, ' rewrite' => array( 'slug' => '流派' ),
);
register_taxonomy( '流派', array( '图书' ), $args ); }
// 将函数挂载到init钩子上,使代码生效
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 并复制以下代码:
the_terms( $post-ID, 'genre', 'Genres:' , ', ', ' ' );
如果整个过程正确完成,您现在将在可视化编辑器中看到一个名为“流派”的新分类
如果您想了解更多详细信息,请参阅 https ://developer.wordpress.org/reference/functions/register_taxonomy/
摘要:了解 WordPress 分类法
WordPress 分类法是一种用于对 WordPress 网站上的内容进行分组的工具。分类法可用作广泛主题的分类,而标签可用于这些主题内的较小细节。
您还可以通过使用某些特定的 WordPress 插件或向functions.php 文件添加代码来创建自定义分类法。
如果您以正确的方式使用 WordPress 分类策略,它将改善您网站的用户体验和整体性能。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。