Intereting Posts
Как вы можете делать постоянную ссылку для пользовательских типов сообщений и таксономии? Есть ли способ только получать сообщения с одним или несколькими большими пальцами вверх (плагин рейтинга звезд GD)? 404 ошибок после обновления параметров плагина и изменения базовой категории WordPress Multisite – создайте сообщение по умолчанию и новую категорию на новой установке сайта Лучший способ отображения сообщений по тегам (не категория) Файлы автоматически добавлены Отключает test_form в wp_handle_upload проблема безопасности? Таблица стилей WordPress не добавляется Запрос не отображает текстовые данные с апострофами Разный размер видеоизображения для страницы категории (меньше) и подробной страницы (больше) Удалить размер из wp_get_attachment_image Поле настроек: сохранение нескольких опций <select> Использование темы _s, изменения меню не влияют на меню заголовка Язык wp изменен после обновления до centos 5.8 Использование пользовательских таксономий в запросе

add_rewrite_rule – работает отлично, но сломан для разбивки на страницы

Моя настройка такова:

  • Таксономия называется «регион»
  • Термины в этой таксономии, такие как «шотландия»
  • Различные типы сообщений, которые используют эту единую таксономию

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

add_rewrite_rule( 'region/([^/]+)/([^/]+)/([^/]+)/?', 'index.php?taxonomy=region&term=$matches[1]&post_type=$matches[3]', 'top' ); 

Это дает мне действующий URL:
http://example.com/region/scotland/type/event/
это именно то, что мне нужно (регион / [scotland] = таксономия, тип / [событие] = тип сообщения)

Тем не менее, я попытался добавить дополнительный add_rewrite_rule для обработки разбивки на страницы в следующем формате URL (я действительно не очень хорошо справляюсь с регулярным выражением!), Но я просто не могу правильно настроить правильную разбивку на страницы – я был нацелен на добиться следующего:

http://example.com/region/scotland/type/event/page/1
http://example.com/region/scotland/type/event/page/2
http://example.com/region/scotland/type/event/page/3

Я думаю, что я почти там, так как у меня есть правильное правило перезаписи, но, попробовав много разных вещей, я просто не смог достичь правильной комбинации правил regex / rewrite для достижения разбивки на страницы. Не очень хорошая постоянная ссылка на этот запрос, который правильно функционирует:

http://example.com/index.php?taxonomy=region&term=scotland&post_type=event&paged=1

Solutions Collecting From Web of "add_rewrite_rule – работает отлично, но сломан для разбивки на страницы"

Ты пробовал:

Основной:

 add_rewrite_rule( 'region/([^/]+)/type/([^/]+)/?', 'index.php?taxonomy=region&term=$matches[1]&post_type=$matches[2]', 'top' ); 

Для разбивки на страницы

 add_rewrite_rule( 'region/([^/]+)/type/([^/]+)/page/([0-9]{1,})/?', 'index.php?taxonomy=region&term=$matches[1]&post_type=$matches[2]&paged=$matches[3]', 'top' ); 

Из любопытства я заменил один из ([^/]+) литеральным «типом», поскольку он не является динамической переменной.

Если разбиение на страницы не работает, попробуйте переключить порядок, когда он объявлен, т.е. до или после вашего другого правила перезаписи. Многие вопросы связаны с тем, какой порядок они объявлены, какие эффекты запускают правило.

Кроме того, плагин «Переименование правил» может быть очень полезным, помогая вам понять, какие правила перезаписи выполняются для определенных URL-адресов.