WordPress add_rewrite_rule не работает на странице с параметрами

#php #wordpress #mod-rewrite #url-rewriting #query-string

#php #wordpress #мод-перезапись #url-переписывание #строка запроса

Вопрос:

Я создал страницу под названием «гараж» на WordPress с пользовательским запросом на ней. Запрос находится в functions.php и используется на странице гаража через короткий код. Страница также имеет разбивку на страницы с использованием WP-PageNavi (плагин WordPress). Страница принимает параметр v для отправки в пользовательский запрос, который выдает результат. Строка запроса URL, которая работает, выглядит следующим образом:

https://fakeURL.net/garage/?v=11

Когда есть подкачка, это выглядит так:

https://fakeURL.net/garage/page/2/?v=11

Я хочу иметь возможность получить тот же результат, используя следующий «красивый» URL:

https://fakeURL.net/garage/11/

или

https://fakeURL.net/garage/11/page/2/

В настоящее время я использую следующее, но оно не работает:

 add_filter( 'query_vars', 'new_query_vars', 10, 1 );
function new_query_vars($vars)
{   
    $vars[] = 'v';
    return $vars;
}

function custom_rewrite() 
{
    add_rewrite_rule('^garage/([0-9] )/?', 'index.php?pagename=garageamp;v=$1', 'top');
}
add_action('init', 'custom_rewrite');
  

Выше отображаются все данные (не отфильтрованные, как ожидалось) на странице, и при нажатии на ссылки для разбивки на страницы URL-адрес изменяется, как и ожидалось, но страница остается включенной Page 1 со всеми теми же результатами.

https://fakeURL.net/garage/page/2/?v=11 и https://fakeURL.com/garage/page/2/?v=11 работайте, чтобы получить результат. Я что-то упускаю? Я доволен просто достижением https://fakeURL.net/garage/11/ . Буду признателен за любую помощь.