我在使用wordpress重写页面网址时遇到了一些问题。 我尝试使用常规apache mod_rewrite,但结果尚无定论。所以我选择专注于wordpress重写
我的开发域名是:
我试图重写此地址
/index.php?p=13806&annee=2014
作为
/ resultats / 2014 /
其中结果是p = 13806 而2014年则是“退休”。 (法语年份)
my functions.php:
function add_result_url() {
add_rewrite_rule('^resultats/([0-9]+)/?', 'index.php?p=13806&annee=$matches[1]', 'top');
add_rewrite_tag('%annee%','([0-9]+)');
};
add_action('init', 'add_result_url');
flush_rewrite_rules();
我的模板文件
global $wp_query;
$season = $wp_query->query_vars['annee'];
var_dump ($wp_query->query_vars['annee']);
var_dump在
上返回 null/ resultats / 2014 /
但可以使用
resultats /?ANNEE = 2014
/index.php?p=13806&annee=2014(重定向第一个)
感谢您的帮助
编辑1
我查看来自ihor's answear的2个链接,但无法使用它:
functions.php
function add_custom_query_var( $vars ){
$vars[] = "annee";
return $vars;
}
add_filter( 'query_vars', 'add_custom_query_var' );
function add_rewrite_rules($aRules) {
//add_rewrite_rule('^resultats/([^/]*)/([^/]*)/$', '?p=13806&annee=$matches[1]&gp=$matches[2]', 'bottom');
$aNewRules = array('^resultats/([0-9]*)/$' => 'index.php?p=13806&annee=$matches[1]');
$aRules = $aNewRules + $aRules;
return $aRules;
}
add_filter('rewrite_rules_array', 'add_rewrite_rules');
和
template file:
if(isset($wp_query->query_vars['annee'])) {
$season = urldecode($wp_query->query_vars['annee']);
}
var_dump ($season);
var_dump ($_GET["annee"]);
答案 0 :(得分:0)
$matches[1]
中捕获此变量。annee
的变量吗?也许你需要先注册这个var。有关详细说明,请参阅这两个SO问题: