archive与category的区别

在 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.php ‌35
  • ‌通用 Archive 页面‌

    • 使用:archive.php
    • 适用于所有非 Category 的归档类型(如时间、标签、作者等)
    • 如果 archive.php 不存在,则回退到 index.php ‌56

因此,‌archive.php 是所有归档页面的通用模板,而 category.php 仅用于分类页面‌ ‌48。


‌3. 判断条件函数‌

在主题开发中,可通过条件标签区分:

  • is_category():仅对分类页面返回 true
  • is_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 样式 ‌

赞 (0)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址