У меня возникла проблема с переписыванием URL-адреса страницы с помощью wordpress. Я пробовал с обычным apache mod_rewrite, но результат был неубедительным. Поэтому я решил сосредоточиться на WordPress переписыванияНевозможно переписать URL с пользовательским var в wordpress
моего домена Дев является:
Я пытаюсь переписать этот ADRESS
/index.php?p = 13806 & annee = 2014
в
/resultats/2014/
где resultats р = 13806 и 2014 является 'ANNEE' (год на французском языке)
мой 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 возвращают нуль на
/resultats/2014/
но работает на
resultats /? ANNEE = 2014
/индекс .php? p = 13806 & annee = 2014 (с переадресацией на первый)
Спасибо за вашу помощь
EDIT 1
Я проверить связь 2 от answear Игореве, но не мог получить он работал с:
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"]);
Отредактированные мой вопрос, но все-таки stucked – Kable
первую очередь, установить и использовать 2 плагин для отладки - Query Monitor и переписать правила инспектора. Первый из них покажет вам все, что происходит под капотом, - как WP анализирует запрос, какие переменные он подбирает и т. Д. Во-вторых, вы сможете проверить свои правила перезаписи и посмотреть, есть ли другое правило, которое перехватывает запрос. Ловушка с правилами перезаписи находится в их порядке - WP использует первый согласованный и игнорирует остальные. Из вашего вопроса трудно понять, где проблема. Вся переписывающая тема немного сложна и требует некоторой отладки. –