如何打印出重定向查询字符串的变量?

时间:2015-01-14 16:50:00

标签: php wordpress

我有一个基本的重定向设置:

function example_add_rewrite_rules() {
  $made_year = '(\d{4})?';
  $make = '([a-z]{1,20})';
  $model = '(.+)';
  add_rewrite_rule( 'c/'.$made_year.'/?'.$make.'/'.$model.'/?$', 'index.php?page_id=46&made_year=$matches[1]&make=$matches[2]&model=$matches[3]', 'top' );
}
add_action( 'init', 'example_add_rewrite_rules' );

我希望每当用户点击网址为../c/2015/ford/f150的网页时,该网址都会存储在查询字符串中。

所以,希望用户会看到:" / c / 2015 / ford / f150"

虽然我看到了这一点:"?page_id = 46& year = 2015& make = ford& model = f150"

我不知道它的工作与否。如果我输入/ c / 2015 / ford / f150,它会将我重定向到正确的页面/ page_id。但我无法弄清楚如何将这些查询变量打印到页面中,这样我至少可以看到查询字符串配置正确并且变量存储在year,make和model中。

总结:我在上面的代码中做错了什么?如果没有,如何将查询字符串变量打印到页面?

除此之外:我跳进了PHP的海洋,我还在努力学习如何游泳。如果我错误地说了些什么,请原谅并纠正我,因为我不知道我做了什么。

1 个答案:

答案 0 :(得分:0)

要在重写规则中使用您自己的查询变量,您需要将它们添加到已知变量列表中:

function wpd_query_vars( $qvars ) {
  $qvars[] = 'my_year';
  $qvars[] = 'make';
  $qvars[] = 'model';
  return $qvars;
}
add_filter( 'query_vars', 'wpd_query_vars' , 10, 1 );

然后您可以使用get_query_var:

在模板中输出它们的值
echo get_query_var( 'model' );