Обычная страница вместо страницы Архива произвольного типа записи в WordPress

Комментариев: 6

Иногда бывает необходимость, вместо страницы архива, показывать обычную страницу. Например, мы создали произвольны тип записей "events", задали ему слаг "events" и теперь, если перейти по адресу /events/ - откроется архив записей и подтянется шаблон архива. Теперь создаём страницу "События" и задаём URL "events". Обращаемся по адресу /events/ и вновь получаем страницу архива. Можно конечно изменить slug, например на "events-page" и нет проблем, но тогда проблема другая: в url адресах записей путь будет прежний /events/single-post и в хлебных крошках ссылка будет на страницу архива events, а не на страницу events-page.

Теперь давайте решим эту задачу. Делается это достаточно просто:

  • В функции регистрации произвольного типа записи необходимо указать параметр: 'has_archive' => false
  • Обновить постоянные ссылки в настройках WordPress

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

На этом всё.

Уведомлять о новых комментариях
Уведомлять
guest
6 комментариев
Inline Feedbacks
View all comments
Владимир
Владимир
3 лет назад

А это хороший паттерн? Просто я хочу им начать пользоваться, т.к. на странице архива не вывести просто так текст из редактора, а так же не задашь мета тэги… А на обычной странице и редактор есть и заголовок можно менять и т.д.

Сергей
Сергей
3 лет назад

спасибо тебе добрый человек! решение помогло!

Пётр
3 лет назад

Приветствую, то что нужно. У меня есть проблема, произвольные типы записей выводятся ACF PRO, где нужно указать параметр: ‘has_archive’ => false, в моем случае?

Пётр
3 лет назад

У меня есть страница портфолио /portfolio/, где размещены превюшки работ со ссылками на них. Сами работы имеют адрес /folio/rabota1/.
Если перейти по /folio/ попадаем в архив, что не очень красиво.
Если делать редирект на /portfolio/, то сами работы выдают 404 страницу (/portfolio/rabota1/).
Может есть способ сделать так чтобы редирект не распространялся на внутренние страницы чтобы архив был по адресу /portfolio/ (простая страница), а сами работы /folio/rabota1/.
Надеюсь не сильно путано объяснил.