add rewrite tag 描述
此函数可以用来添加自定义查询字符串,一般和add_rewrite_rule()
配合使用为自定义模板添加自定义URL重定向规则。
如果用此函数声明一个已经存在的重定向标签,现有的重定向标签将被覆盖。
此函数必须在init的或更早的时候调用。
add rewrite tag 使用说明
<?php add_rewrite_tag($tag, $regex, $query); ?>
add rewrite tag 参数
$tag
(string) (必需) 重定向标签的名称,开始和结尾需要用 % 包括起来。
默认: None
$regex
(string) (必需) 指定标签的正则表达式
默认: None
$query
(string) (可选) 附加查询到查询属性数组
默认: None
add rewrite tag 做了什么
- 通过去掉%符号获取查询变量名称:trim($tag, ‘%’)
- 使用查询标签名称调用 $wp_rewrite->add_rewrite_tag(),生成查询变量名称和对应的正则表达式
- 添加查询变量到查询参数
add rewrite tag 使用示例
下面的代码将注册一个名称为 ‘film_title’ 的查询标签:
<?php
function custom_rewrite_tag() {
add_rewrite_tag('%film_title%', '([^&]+)');
}
add_action('init', 'custom_rewrite_tag', 10, 0);
?>
这在和自定义页面模板中使用重定向时非常重要。
获取重定向后的查询的参数值
定义了查询标签之后,我们可以使用WordPress的 $wp_query 实例获取自定义的查询参数值,例如,想要获取上面的查询标签的值,我么可以在页面模板中这样获取。
$wp_query->query_vars['film_title']
注意:在一个重定向后的URL上使用 $_GET 变量将获取不到查询参数,即使重定向中包含这个查询参数,想要获取这个参数,必须使用$wp_query。