我已设置基本重定向:
function example_add_rewrite_rules() {
$year = \'(\\d{4})?\';
$make = \'([a-z]{1,20})\';
$model = \'(.+)\';
add_rewrite_rule( \'c/\'.$year.\'/?\'.$make.\'/\'.$model.\'/?$\', \'index.php?page_id=46&year=$matches[1]&make=$matches[2]&model=$matches[3]\', \'top\' );
}
add_action( \'init\', \'example_add_rewrite_rules\' );
我希望每当用户点击URL为的页面时/c/2015/ford/f150,该URL存储在查询字符串中。
所以,希望用户能看到:“/c/2015/ford/f150”
而我看到的是:“?page\\u id=46&year=2015&make=ford&model=f150”
我不知道它是否有效。如果我输入/c/2015/ford/f150,它会将我重定向到正确的页面/page\\id。但我一生都不知道如何将这些查询变量打印到页面上,这样我至少可以看到查询字符串配置正确,并且变量存储在年份、品牌和型号中。
小结:我在上面的代码中有没有做错什么?如果没有,如何将查询字符串变量打印到页面?
旁白:我正在跳入PHP的海洋,我仍在努力学习如何游泳。如果我说错了什么,请原谅并纠正我,因为我不知道自己在做什么。
最合适的回答,由SO网友:Milo 整理而成
第一year
已经是用于基于日期的存档的WordPress查询变量,您应该将其更改为唯一的,以防止可能的冲突。
要在重写规则中使用自己的查询变量,需要将它们添加到已知变量列表中:
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\' );