【发布时间】:2015-03-20 23:21:18
【问题描述】:
我在使用 wordpress 重写页面 URL 时遇到了一些问题。 我尝试使用常规的 apache mod_rewrite,但结果尚无定论。所以我选择专注于wordpress重写
我的开发域是:
我正在尝试重写这个地址
/index.php?p=13806&annee=2014
作为
/resultats/2014/
其中结果是 p=13806 2014 年是“annee”(法语年份)
我的函数.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 on
/resultats/2014/
但可以工作
结果/?annee=2014
/index.php?p=13806&annee=2014(第一个重定向)
感谢您的帮助
编辑 1
我检查了 ihor 的 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"]);
【问题讨论】:
标签: wordpress mod-rewrite rewrite