Как переписать URL страницы на основе параметров строки запроса?
У меня есть следующая страница, которая содержит один пост и несколько комментариев:
http://mysite.com/tips
Когда пользователь оставляет комментарий, я добавляю к нему метаданные, чтобы можно было фильтровать комментарии, используя такие URL:
http://mysite/tips?id=cat&filter_id=1
http://mysite/tips?id=dog&filter_id=2
Я хочу использовать вместо них следующие URL:
http://mysite/tips/cat
http://mysite/tips/dog
Страница tips отображает список постов на основе параметров строки запроса.
Я проработал этот учебник, который казался мне подходящим, но когда я ввожу свой URL, я получаю ошибку "страница не найдена".
Возможно ли это реализовать?

Вы можете добавить правило перезаписи URL, как показано ниже. Убедитесь, что вы зарегистрировали ваши публичные query vars в WordPress, чтобы система распознавала переменные из вашего правила перезаписи.
add_rewrite_rule('^(tips)/([^/]*)/([^/]*)/?', 'index.php?name=$matches[1]&id=$matches[2]&filter_id=$matches[3]','top');
add_filter('query_vars', 'foo_my_query_vars');
function foo_my_query_vars($vars){
$vars[] = 'id';
$vars[] = 'filter_id';
return $vars;
}
Перейдите на страницу настроек постоянных ссылок, чтобы сбросить их.
Доступ к вашим переменным можно получить следующим образом:
$id = get_query_var('id');
$filter_id = get_query_var('filter_id');
Обратите внимание, что вы хотите использовать две динамические переменные с одним сегментом URI, что не будет работать. Приведенное выше правило перезаписи работает для tips/cat/1 (где 1 — это filter_id).
Для тестирования ваших правил я настоятельно рекомендую использовать Monkeyman Rewrite Analyzer.
Надеюсь, это поможет вам!

Вы можете использовать функцию add_query_arg
:
add_query_arg('filter_id', 1);
add_query_arg('filter_id', 2);
Теперь URL выглядят следующим образом:
http://mysite/tips/cat?filter_id=1
http://mysite/tips/dog?filter_id=2
Вы можете получить значения аргументов следующим образом:
$id = get_query_var('id');
$filter_id = get_query_var('filter_id');

Я думаю, вы хотите изменить стиль постоянных ссылок. Вы можете изменить постоянные ссылки вашего сайта через административную панель WordPress. Перейдите в WordPress, затем в боковом меню выберите "Настройки", где вы увидите подменю "Постоянные ссылки". Нажмите на него, и вы увидите различные типы постоянных ссылок, предоставляемые WordPress. Вы также можете создать свою собственную структуру постоянных ссылок. Посмотрите на изображение, надеюсь, это поможет:
