在 WordPress 中,Archive(归档) 和 Category(分类) 都是用于展示文章列表的页面类型,但它们的组织方式、用途和模板结构有所不同。以下是核心区别:
1. 定义与用途
-
Category(分类)
- 是一种内容分类方式,用于按主题或类别组织文章。
- 每个分类有独立页面,URL 通常为
https://example.com/category/xxx/。 - 属于 自定义分类法(Taxonomy) 的一种,默认用于文章(Post)。
-
Archive(归档)
- 是一个更广义的概念,泛指所有按时间、分类、标签、作者等维度组织文章的列表页面。
- 包括:
- 按时间归档(如
2026年04月) - 按分类归档(即 Category 页面)
- 按标签归档
- 按作者归档
- 自定义文章类型归档等
- 按时间归档(如
- URL 示例:
https://example.com/2026/04/(时间归档)
简言之:Category 是 Archive 的一种子类型。所有 Category 页面都属于 Archive 页面,但并非所有 Archive 页面都是 Category 页面 25。
2. 模板文件差异
WordPress 主题使用不同的模板文件来渲染这些页面:
-
Category 页面
- 优先使用:
category-{slug}.php或category-{id}.php(如category-news.php) - 备用:
category.php - 再次备用:
archive.php - 最终 fallback:
index.php35
- 优先使用:
-
通用 Archive 页面
- 使用:
archive.php - 适用于所有非 Category 的归档类型(如时间、标签、作者等)
- 如果
archive.php不存在,则回退到index.php56
- 使用:
因此,
archive.php是所有归档页面的通用模板,而category.php仅用于分类页面 48。
3. 判断条件函数
在主题开发中,可通过条件标签区分:
is_category():仅对分类页面返回trueis_archive():对所有归档页面(包括 Category)返回true
8
示例:若需在分类页显示特殊内容,可用
if (is_category()) { ... };若需在所有归档页统一处理,则用if (is_archive()) { ... }。
总结对比表
| 特性 | Category(分类) | Archive(归档) |
|---|---|---|
| 本质 | 内容分类方式 | 文章列表页面类型 |
| 包含范围 | 仅分类 | 包含分类、时间、标签、作者等 |
| 主模板文件 | category.php |
archive.php |
| 特定模板 | category-{slug/id}.php |
date.php, tag.php, author.php 等 |
| 判断函数 | is_category() |
is_archive() |
如需进一步自定义分类样式,可参考:WordPress 自定义 categories 样式
