在 WordPress 中,URL 重写规则是通过一个称为“重写 API”的机制来管理的。这个机制允许 WordPress 将用户友好的 URL(如 /about-us/
)映射到实际的查询字符串(如 index.php?p=123
)。以下是 WordPress URL 重写规则的基本概念和工作原理:
1. 重写规则的基本概念
- 友好的 URL:WordPress 允许用户使用更易读的 URL 结构,这些 URL 通常与内容相关,而不是包含复杂的查询参数。
- 重写规则:这些规则定义了如何将请求的 URL 转换为 WordPress 可以理解的查询参数。
2. 重写 API
WordPress 的重写 API 主要通过以下几个函数来实现:
add_rewrite_rule()
:用于添加自定义的重写规则。add_rewrite_tag()
:用于添加自定义的重写标签,以便在 URL 中使用。flush_rewrite_rules()
:用于刷新重写规则,通常在主题或插件激活时调用。
3. 默认重写规则
WordPress 默认提供了一些重写规则,主要包括:
- 文章:
/year/month/day/post-name/
(例如/2023/10/01/my-post/
) - 页面:
/page-name/
(例如/about-us/
) - 分类:
/category/category-name/
(例如/category/news/
) - 标签:
/tag/tag-name/
(例如/tag/wordpress/
)
4. 自定义重写规则示例
以下是一个简单的示例,展示如何添加自定义重写规则:
function custom_rewrite_rule() {
add_rewrite_rule(
'^custom/([^/]*)/?', // 匹配的 URL
'index.php?pagename=custom-page¶m=
matches[1]',
'top'
);
}
add_action('init', 'custom_rewrite_rule');
总结
WordPress 的 URL 重写规则通过重写 API 提供了强大的功能,允许开发者创建用户友好的 URL。通过使用 add_rewrite_rule()
和 add_rewrite_tag()
,可以轻松地添加自定义规则和标签。记得在修改规则后刷新重写规则,以确保新规则生效。