Wordpress - add_rewrite_rule не работает.Возвращает 404 - PullRequest
0 голосов
/ 27 декабря 2018

Я добавляю пользовательские URL в Wordpress, используя add_rewrite_rule.Ниже приведен мой код: -

add_action( 'init', 'some_function' );
function some_function(){
    global $wp_rewrite; 
    add_rewrite_rule(  // This is not working.
        '([a-zA-Z0-9-]+)/dp/([a-zA-Z0-9-]+)/?$',
        'index.php?partners_deal_url=$matches[1]',
        'top' );
    add_rewrite_rule(  // This is working.
        'dp/([a-zA-Z0-9-]+)/?$',
        'index.php?partners_deal_url=$matches[1]',
        'top' );
    $wp_rewrite->flush_rules();
}

add_filter( 'query_vars', 'wpse26388_query_vars' );
function wpse26388_query_vars( $query_vars ){
    $query_vars[] = 'partners_deal_url';
    return $query_vars;
}

add_action( 'template_redirect', 'prefix_url_rewrite_templates' );
function prefix_url_rewrite_templates() {
    if (get_query_var('partners_deal_url')){
        add_filter( 'template_include', function() {
            return get_template_directory() . '/single-deal.php';
        });
    }
}

Однако некоторые из моих пользовательских URL-адресов работают, а некоторые - нет.Не уверен, почему?

Приведенный ниже URL не работает: -

add_rewrite_rule('([a-zA-Z0-9-]+)/dp/([a-zA-Z0-9-]+)/?$',
        'index.php?partners_deal_url=$matches[1]', 'top' );

Например, например: - Когда я просматриваю domain.com/ABCD/dp/PQR, он говорит, что 404 не найдено.

Приведенное ниже правило работает нормально.

add_rewrite_rule('dp/([a-zA-Z0-9-]+)/?$',
            'index.php?partners_deal_url=$matches[1]', 'top' );

Например, например: - Когда я перехожу к domain.com/dp/PQR, оно работает отлично.

Однако приведенный ниже URL не работает: -

add_rewrite_rule('([a-zA-Z0-9-]+)/dp/([a-zA-Z0-9-]+)/?$',
        'index.php?partners_deal_url=$matches[1]', 'top' );

Например, например: - При просмотре domain.com/ABCD/dp/PQR появляется сообщение 404. Не найдено.

IЯ проверил мои правила URL, используя Monkeyman Rewrite Analyzer , и шаблон URL совпадает, но все равно выдает ошибку 404.

Что именно мне не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...