2014-12-03 2 views
0

Я хочу добавить простое обычное правило перезаписи Wordpress, но почему-то я не получаю эту работу.Wordpress пользовательские правила перезаписи не работают

Этот URL

http://www.gewerbesteuer.de/steuer/muenchen должен вызвать этот

http://www.gewerbesteuer.de/index.php?pagename=gewerbesteuerhebesaetze&loc=muenchen.

Поэтому я хочу позвонить на страницу с отображением ставок налога для определенного города, город должен быть в URL-адресе в качестве последней части.

Вот мой код:

function custom_rewrite_tag() { 
    global $wp_rewrite; 
    add_rewrite_tag('%loc%', '([^&]+)'); 
    add_rewrite_rule('steuer/([^/]+)', 
     'index.php?pagename=gewerbesteuerhebesaetze&loc=$matches[1]', 'top');  
    flush_rewrite_rules();  
} 

function query_vars($query_vars) { 
    $query_vars[] = 'loc'; 
    return $query_vars; 
} 

add_action('init', 'custom_rewrite_tag'); 
add_filter('query_vars', 'query_vars'); 

правило переписывания работает, но параметр (в данном случае LOC) не забирается. Даже если я жёстко правила перезаписи с определенным городом, как

add_rewrite_rule('steuer/([^/]+)', 
    'index.php?pagename=gewerbesteuerhebesaetze&loc=muenchen', 'top'); 

это еще doesen't подобрать значение параметра цита. Я также заметил, что массив $ matches пуст и не содержит никаких значений. Я просмотрел все документы в wordpress и вопросы здесь, но не смог найти проблему. Есть идеи?

Благодаря

Бернхард

ответ

0

Вы можете попробовать добавить это и посмотреть, если это делает никакой разницы?

Edited

Я изменил параметр Я в правиле переписывания от «pagename» до «page_id» - я предполагаю, что его 2207, как тот, что он сказал, глядя на классе тела на странице вашего сайта.

Я также удалил flush_rewrite_rules() с функции custom_rewrite_rules_tags, вы можете попробовать это сейчас, затем перейдите в меню «Параметры»> «Переназначения» и снова сохраните снова.

function custom_rewrite_rules_tags() { 
    global $wp_rewrite; 
    add_rewrite_tag('%loc%', '([^&]+)'); 
    add_rewrite_rule(
     'steuer/([^/]+)', 
     'index.php?page_id=2207&loc=$matches[1]', 
     'top' 
    );   
} 
add_action('init', 'custom_rewrite_rules_tags'); 

function custom_query_vars($query_vars) { 
    $query_vars[] = 'loc'; 
    return $query_vars; 
} 
add_filter('query_vars', 'custom_query_vars'); 
+0

Спасибо за ваш быстрый ответ, я добавил это, и это все равно. – Bernie

+0

Нет проблем, вы пробовали обычные вещи - повторное сохранение постоянных ссылок в Options> Permalinks? –

+0

Я просто попробовал это сейчас, это все равно то же самое – Bernie