访问者点击类别,标签或自定义分类法的超链接时,WordPress会以相反的时间顺序显示一页帖子,按照该分类法过滤。
默认情况下,此页面使用index.php模板文件生成。 您可以创建可选的模板文件来覆盖和优化index.php模板文件。 本节介绍如何使用和创建此类模板。
## 分类模板层次结构
WordPress按照模板层次结构确定的顺序显示帖子。
category.php,tag.php和taxonomy.php模板允许通过分类过滤的帖子与未过滤的帖子或不同分类过滤的帖子进行对待。 (注:帖子是指任何帖子类型 - 帖子,页面,自定义帖子类型等)。 这些文件可让您指定特定的分类法或具体的分类术语。 例如:
- taxonomy-{taxonomy}-{term}.php
- taxonomy-{taxonomy}.php
- tag-{slug}.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被命名为“news”,WordPress将寻找名为category-news.php的文件。
- category-{ID}.php: 例如,如果类别ID为“6”,则WordPress将查找名为category-6.php的文件。
- category.php
- archive.php
- index.php
## 标签
对于标签,WordPress寻找tag-{slug}.php文件。 如果不存在,WordPress然后将查找下一个层次级别的文件,tag-{ID}.php等等。 如果WordPress无法找到任何专门的模板或archive.php模板文件,它将恢复为默认行为,使用index.php。
标签层次结构如下所示:
- tag-{slug}.php: 例如,如果标签的命名为“sometag”,WordPress将会找到一个名为tag-sometag.php的文件。
- tag-{id}.php: 例如,如果标签的ID为“6”,则WordPress会查找名为tag-6.php的文件。
- tag.php
- archive.php
- index.php
## 自定义分类
自定义分类层次结构与上述类别和标签层次结构类似。 WordPress寻找taxonomy-{taxonomy}-{term}.php文件。 如果不存在,WordPress则会为下一个层次级别taxonomy-{taxonomy}.php等查找文件。 如果WordPress无法找到任何专门的模板或archive.php模板文件,它将恢复为默认行为,使用index.php。
自定义分类法的层次结构如下所示:
- taxonomy-{taxonomy}-{term}.php: 例如,如果分类法被命名为“sometax”,并且分类术语是“someterm”,则WordPress将寻找一个名为taxonomy-sometax-someterm.php的文件。
- taxonomy-{taxonomy}.php: 例如,如果分类法被命名为“sometax”,WordPress将会查找一个名为taxonomy-sometax.php的文件
- taxonomy.php
- archive.php
- index.php
## 创建分类模板文件
现在您决定要根据分类法为内容创建自定义设计,从哪里开始?
而不是从一个空白文件开始,最好复制层次结构中的下一个文件(如果存在)。 如果您已经创建了archive.php,请创建一个名为category.php的副本,并根据您的设计需求进行修改。 如果您没有archive.php文件,请使用主题的index.php副本作为起点。
如果要创建任何分类模板文件,请按照相同的步骤进行操作。 使用您的archive.php,category.php,tag.php或index.php的副本作为起点。
## 例子
现在,您已经在主题目录中选择了需要修改的模板文件,我们来看一些例子。
## 将文本添加到类别页面
静态文本上面的帖子#Static Text上面的帖子
假设您希望在类别页面上的帖子列表之前显示一些静态文本。 “静态”是保持不变的文字,无论下面显示哪些帖子,无论显示哪个类别。
打开您的文件和上面的模板文件的循环部分,插入以下代码:
```
<p>
This is some text that will display at the top of the Category page.
</p>
```
此文本仅显示在显示该类别中的帖子的存档页面上。
## 某些类别页面上的不同文本
如果要根据访问者使用的类别页面显示不同的文本,该怎么办? 您可以添加默认文本到主要的category.php文件,并创建特殊的category-{slug}.php文件,每个文件都有自己的版本,但这将在您的主题中创建大量的文件。 相反,您可以使用条件标签。
再次,这个代码将在循环之前添加:
```
<?php if (is_category('Category A')) : ?>
<p>This is the text to describe category A</p>
<?php elseif (is_category('Category B')) : ?>
<p>This is the text to describe category B</p>
<?php else : ?>
<p>This is some generic text to describe all other category pages,
I could be left blank</p>
<?php endif; ?>
```
此代码执行以下操作:
检查访问者是否请求了类别A.如果是,它显示第一个文本。
如果用户没有请求类别A,请检查B类。如果是,则显示第二条文本。
显示默认文本,如果没有请求。
## 仅在存档首页上显示文本
如果您的帖子比您的档案的一页更适合,则该类别会分成多个页面。 也许你想显示静态文本,如果用户在结果的第一页。
为此,请使用查询$paged WordPress变量值的PHP if语句。
将以下内容放在循环中:
```
<?php if ( $paged < 2 ) : ?>
<p>Text for first page of Category archive.</p>
<?php else : ?>
<?php endif; ?>
```
此代码询问显示的页面是否是归档的第一页。 如果是,则显示第一页的文本。 否则显示后续页面的文本。
# 修改帖子的显示方式
## 摘录与全职
您可以选择是否显示完整的帖子或只是摘录。 通过显示摘录,缩短存档页面的长度。
打开你的文件并找到循环。 寻找:
- the_content() 并替换为:
- the_excerpt() 如果您的主题显示摘录,但是要显示完整的内容,请将the_excerpt替换为the_content。
- 简介
- 主题开发
- WordPress许可证
- 什么是主题
- 开发环境
- 主题开发示例
- 主题基础
- 模板文件
- 主样式表(style.css)
- 文章类型
- 规划主题文件
- 模板层级
- 模板标签
- 循环
- 主题函数
- 连接主题文件和目录
- 使用CSS和JavaScript
- 条件标签
- 类别,标签和自定义分类
- 模板文件
- 内容模板文件
- 页面模板文件
- 附件模板文件
- 自定义内容类型
- 部分和其他模板文件
- 评论模板
- 分类模板
- 404页面
- 主题功能
- 核心支持的功能
- 管理菜单
- 自定义Headers
- 自定义Logo
- 文章格式
- 置顶文章
- Sidebars
- Widgets
- 导航菜单
- 分页
- 媒体
- Audio
- Images
- Galleries
- Video
- 精选图片和缩略图
- 国际化
- 本地化
- 辅助功能
- 主题选项 – 自定义API
- 定制对象
- 改进用户体验的工具
- 定制JavaScript API
- JavaScript / Underscore.js渲染的自定义控件
- 高级用法
- 主题安全
- 数据消毒/逃避
- 数据验证
- 使用随机数
- 常见漏洞
- 高级主题
- 子主题
- UI最佳实践
- JavaScript最佳做法
- 主题单元测试
- 验证你的主题
- Plugin API Hooks
- 发布你的主题
- 所需的主题文件
- 测试
- 主题评论指南
- 写文档
- 提交你的主题到WordPress.org
- 参考文献
- 模板标签列表
- 条件标签列表
- 编码标准
- HTML编码标准
- CSS编码标准
- JavaScript编码标准
- PHP编码标准
- 插件开发
- 插件开发简介
- 什么是插件
- 插件基础
- 头部要求
- 包括软件许可证
- 启用 / 停用 Hooks
- 卸载方法
- 最佳做法
- 插件安全
- 检查用户功能
- 数据验证
- 保护输入
- 保护输出
- 随机数
- Hooks
- Actions
- Filters
- 自定义Hooks
- 高级主题
- 管理菜单
- 顶级菜单
- 子菜单
- 短代码
- 基本短码
- 封闭短码
- 带参数的短代码
- TinyMCE增强型短码
- 设置
- 设置API
- 使用设置API
- 选项API
- 自定义设置页面
- 元数据
- 管理帖子元数据
- 自定义元数据
- 渲染元数据
- 自定义文章类型
- 注册自定义文章类型
- 使用自定义文章类型
- 分类
- 使用自定义分类
- 在WP 4.2+中使用“split术语”
- 用户
- 创建和管理用户
- 使用用户元数据
- 角色和功能
- HTTP API
- JavaScript
- jQuery
- Ajax
- 服务器端PHP和入队
- Heartbeat API
- 概要
- 计划任务
- 了解WP-Cron计划
- 安排WP-Cron 事件
- 将WP-Cron挂接到系统任务计划程序中
- WP-Cron简单测试
- 国际化
- 本地化
- 如何国际化您的插件
- 国际化安全
- WordPress.org
- 详细插件指南
- 规划您的插件
- 如何使用Subversion
- 插件开发者常见问题
- 开发工具
- Debug Bar 和附加组件
- 辅助插件
- REST API手册
- 资源
- 文章
- 文章修订
- 文章类型
- 文章状态
- 类别
- 标签
- 页面
- 评论
- 分类
- 媒体
- 用户
- 设置
- 使用REST API
- 全局参数
- 分页
- 链接和嵌入
- 发现
- 认证
- 经常问的问题
- 骨干JavaScript客户端
- 客户端库
- 扩展REST API
- 添加自定义端点
- 自定义内容类型
- 修改回应
- 模式
- 词汇表
- 路由和端点
- 控制器类