WordPress 中 URL 重写规则

在 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&param=$matches[1]', // 重写到的查询
        'top' // 优先级
    );
}
add_action('init', 'custom_rewrite_rule');

在这个示例中,当用户访问 /custom/some-value/ 时,WordPress 会将其重写为 index.php?pagename=custom-page&param=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(),可以轻松地添加自定义规则和标签。记得在修改规则后刷新重写规则,以确保新规则生效。

0 0 投票数
Article Rating
订阅评论
提醒
0 评论
最多投票
最新 最旧
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x