如何在WordPress中实现自定义URL重写?
解释如何使用WordPress代码实现自定义URL重写规则的技巧。
-
玖比肆 评论在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
