如何在WordPress中实现自定义URL重写?

玖比肆 WordPress 31

解释如何使用WordPress代码实现自定义URL重写规则的技巧。

回复

共1条回复 我来回复
  • 玖比肆的头像
    玖比肆 评论

    在WordPress中实现自定义URL重写是通过使用Rewrite API(重写API)来完成的。以下是使用WordPress代码实现自定义URL重写规则的步骤:

    1. 创建自定义URL重写规则

    使用add_rewrite_rule()函数来创建自定义URL重写规则。这个函数具有以下语法:

    add_rewrite_rule($regex, $redirect, $after);

    其中:

    $regex:表示要重写的正则表达式,例如,/category/([^/]+)/page/([^/]+)/?。

    $redirect:表示要重写到的URL地址,例如,/index.php?category_name=$matches[1]&paged=$matches[2]。

    $after(可选参数):表示排在 WordPress 重新加载规则之间执行哪个筛选器或动作,例如,'top','bottom','admin'等。

    下面是一个示例,这个示例将拦截/feedback/my-feedback路径,并将其重定向到index.php?feedback=my-feedback:

    add_rewrite_rule('feedback/([^/]+)/?', 'index.php?feedback=$matches[1]', 'top');

    2. 向WordPress添加自定义查询变量

    如果你希望在自定义URL重写规则中添加自定义查询变量,则需要使用add_rewrite_tag()函数。这个函数的语法如下:

    add_rewrite_tag($tag, $regex, $query);

    其中:

    $tag:自定义查询变量的名称。

    $regex:它的正则表达式,用于匹配该查询变量值的形式。

    $query:在查询URL参数字符串中指定名为$tag的变量的值,例如,$query_vars['feedback'] = $matches[1]

    下面是一个示例,这个示例添加了一个名为"feedback"的自定义查询变量:

    add_rewrite_tag('%feedback%', '([^&]+)');

    3. 刷新WordPress规则

    重写规则会在WordPress初始化期间加载,但在添加或修改规则之后,需要刷新规则以使其生效。可以使用flush_rewrite_rules()函数刷新规则。

    下面是一个示例,这个示例将在激活或停用插件时刷新规则:

    register_activation_hook(__FILE__, 'your_plugin_activation_function');
    register_deactivation_hook(__FILE__, 'your_plugin_deactivation_function');

    function your_plugin_activation_function() {
    flush_rewrite_rules();
    }

    function your_plugin_deactivation_function() {
    flush_rewrite_rules();
    }

    使用上述步骤可以在WordPress中实现自定义URL重写规则。消耗计费因实现不同而异,具体消费请参考 AWS 文档。

    2023年 5月 9日 上午7:13 0条评论
微信客服
分享本页
返回顶部
玖比肆(9Bi4)专注于帮助企业实现数字化转型,提供全方位的网站建设、网络运营、网络推广、网络营销和SEO优化等一系列数字化营销服务。