WordPress开发笔记

WordPress自定义分类与自定义posttype归档分页地址结构与固定链接配置

在WordPress启用固定链接($wp_rewrite->using_permalinks()true)时,自定义分类法和自定义文章类型的分页地址结构如下:


1. 自定义分类法(Taxonomy)的分页地址

  • 结构/{分类法基础}/{分类项}/page/{页码}/
  • 示例
    假设分类法为 genre,分类项为 action,第3页的URL为:
    https://example.com/genre/action/page/3/
  • 关键点
    • 使用 /page/{页码}/ 路径结构(非 ?page=3 查询参数形式)
    • 分类法基础(如 genre)需在注册分类法时通过 rewrite 参数定义

2. 自定义文章类型(Post Type)归档分页地址

  • 结构/{自定义文章类型名称}/page/{页码}/
  • 示例
    假设自定义文章类型为 movie,第3页的URL为:
    https://example.com/movie/page/3/
  • 关键点
    • 使用 /page/{页码}/ 路径结构(非 ?page=3
    • 需在注册时开启 has_archive 支持(例如 'has_archive' => 'movie'

3. 分页标识符说明

  • 启用固定链接时
    分页始终通过 /page/{页码}/ 路径实现(如 /page/3/),不是 ?page=3
  • ⚠️ 未启用固定链接时
    分页退化为查询参数形式,如 ?paged=3(注意参数名为 paged 而非 page)。

4. 注意事项

  • 重写规则刷新
    注册分类法或文章类型后,需到 设置 → 固定链接 页面刷新重写规则。
  • 自定义基础路径
    可通过注册时的 rewrite 参数修改路径(例如 'rewrite' => array('slug' => 'custom-slug'))。
  • 分页参数名
    在代码中获取分页使用 get_query_var('paged'),而非 page

5.固定链接 $wp_rewrite->using_permalinks()

$wp_rewrite->using_permalinks()

确定是否正在使用永久链接。

描述

这可以是重写模块,也可以是 HTTP 查询字符串中的永久链接。

返回

布尔语True,如果启用了永久链接。

更多信息

如果您的博客使用任何永久链接结构(即不是默认查询 URI ?p=n、?cat=n),则返回 true。(意思是:

网站后台-》设置-》固定链接 中 ,除了第一个结构类型(即 http://****.cn/?p=123) 之外,选择其他任意类型保存后,$wp_rewrite->using_permalinks()的值是你选中固定链接结构字符串(转化为布尔为true),如果选择第一个结构类型(即 http://****.cn/?p=123)$wp_rewrite->using_permalinks()的值为空(转化为布尔为false)。

总结

类型启用固定链接时的分页结构
自定义分类法分页/{taxonomy}/{term}/page/{num}/
自定义文章类型归档分页/{post_type}/page/{num}/
分页标识符始终为 /page/{num}/(非查询参数)

实际分页行为符合WordPress的重写规则,确保了URL友好性与一致性。