WP пользовательское правило перезаписи - PullRequest
0 голосов
/ 19 июня 2019

У меня есть URL: http://example.com/alternatywy/?id=getresponse

И я пытаюсь переписать это так: http://example.com/alternatywy/getresponse

Я добавил в свои functions.php:

add_action('init', 'dcc_rewrite_tags');
function dcc_rewrite_tags() {
    add_rewrite_tag('%id%', '([^&]+)');
}

add_action('init', 'dcc_rewrite_rules');
function dcc_rewrite_rules() {
    add_rewrite_rule('^alternatywy/(.+)/?$','index.php?page_id=8286&id=$matches[1]','top');
}

Но это не работает. Что я делаю не так?

1 Ответ

1 голос
/ 19 июня 2019

Попробуйте это:

add_filter('query_vars', function($vars) {
    $vars[] = "id";
    return $vars;
});

add_action('init', 'dcc_rewrite_rules');
function dcc_rewrite_rules() {
    add_rewrite_rule('^alternatywy/([^/]+)/?$','index.php?page_id=8286&id=$matches[1]','top');
}

Теперь пришло время сбросить правила перезаписи. Вы можете сделать это двумя способами: либо по коду, либо вручную, сохранив постоянную ссылку.

Руководство:

На экранах администрирования WordPress выберите «Настройки» -> «Постоянные ссылки». и просто нажмите Сохранить изменения без изменений.

Код:

/* Flush rewrite rules for custom post types. */
add_action( 'after_switch_theme', 'flush_rewrite_rules' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...