Intereting Posts
Запретить повторяющиеся термины в get_the_term_list значение php value numeric Самый простой способ вызвать внешний API внешнего отдыха? get_template_directory_uri не зависит от WP_HOME в wp-config.php? Скрыть описание термина на странице редактирования термина, для данной таксономии Как я могу создать базовый PHP, который может жить за пределами WP? Вычисления в functions.php Может ли администратор проверять пароли зарегистрированных пользователей? Опубликованные персонализированные сообщения отсутствуют Как выбрать не отображать заголовок заголовка на определенной странице? Поиск wp_query не содержит ключевых слов для нескольких слов Theme Customizer – выберите, где появится область виджета, чтобы пользователи могли организовать виджетов Как использовать «смещение» для paginate get_users? Как получить идентификатор вложения, как только он будет загружен через загрузчик мультимедиа в jquery? Удаление полей из Media Uploader / Gallery

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-адресов.