#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/
. Буду признателен за любую помощь.