WordPress 中 URL 重写规则 2024-11-04 作者 C3P00 在 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'); 在这个示例中,当用户访问 /custom/some-value/ 时,WordPress 会将其重写为 index.php?pagename=custom-page¶m=some-value。 5. 刷新重写规则 在添加或修改重写规则后,通常需要刷新重写规则。可以通过访问 WordPress 管理后台的“设置” -> “固定链接”页面来自动刷新,或者在代码中调用 flush_rewrite_rules(): function my_plugin_activation() { custom_rewrite_rule(); // 添加自定义重写规则 flush_rewrite_rules(); // 刷新重写规则 } register_activation_hook(__FILE__, 'my_plugin_activation'); 6. 使用重写标签 重写标签允许你在 URL 中使用动态部分。例如: function custom_rewrite_tag() { add_rewrite_tag( } add_action('init', 'custom_rewrite_tag'); 然后可以在重写规则中使用这个标签: function custom_rewrite_rule() { add_rewrite_rule( '^custom/([^/]*)/?', 'index.php?pagename=custom-page&custom_param=$matches[1]', 'top' ); } add_action('init', 'custom_rewrite_rule'); 总结 WordPress 的 URL 重写规则通过重写 API 提供了强大的功能,允许开发者创建用户友好的 URL。通过使用 add_rewrite_rule() 和 add_rewrite_tag(),可以轻松地添加自定义规则和标签。记得在修改规则后刷新重写规则,以确保新规则生效。
在 WordPress 中,URL 重写规则是通过一个称为“重写 API”的机制来管理的。这个机制允许 WordPress 将用户友好的 URL(如
/about-us/
)映射到实际的查询字符串(如index.php?p=123
)。以下是 WordPress URL 重写规则的基本概念和工作原理:1. 重写规则的基本概念
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. 自定义重写规则示例
以下是一个简单的示例,展示如何添加自定义重写规则:
在这个示例中,当用户访问
/custom/some-value/
时,WordPress 会将其重写为index.php?pagename=custom-page¶m=some-value
。5. 刷新重写规则
在添加或修改重写规则后,通常需要刷新重写规则。可以通过访问 WordPress 管理后台的“设置” -> “固定链接”页面来自动刷新,或者在代码中调用
flush_rewrite_rules()
:6. 使用重写标签
重写标签允许你在 URL 中使用动态部分。例如:
然后可以在重写规则中使用这个标签:
总结
WordPress 的 URL 重写规则通过重写 API 提供了强大的功能,允许开发者创建用户友好的 URL。通过使用
add_rewrite_rule()
和add_rewrite_tag()
,可以轻松地添加自定义规则和标签。记得在修改规则后刷新重写规则,以确保新规则生效。