Как удалить архив произвольного типа записей
У меня есть произвольный тип записей "recipe" с параметром has_archive
, установленным в true. При посещении mysite.com/recipe/ отображается базовый архивный список всех опубликованных рецептов с заголовком страницы "Рецепты". Пока всё хорошо.
Теперь я хочу отключить эту архивную страницу рецептов (но сохранить работающими ссылки на отдельные рецепты). Моей первой мыслью было попробовать установить has_archive
в false, что, казалось бы, должно решить проблему. Но нет. Единственное отличие, которое это создает - заголовок страницы почему-то становится названием сайта. Сам архив по-прежнему отображается.
Какой лучший способ полностью удалить этот архив? Существует ли параметр register_post_type
, который позволит это сделать, или это невозможно и нужно использовать пользовательский шаблон страницы с перенаправлением?
Спасибо.
Параметр has_archive
для register_post_type()
делает именно то, что вы ожидаете. Однако он изменяет правила перезаписи URL при установке. Поэтому, если вы измените его на false
, вам потребуется сбросить правила перезаписи, чтобы полностью удалить отображение архива.

Примечание: это нужно сделать только один раз. Простой способ сделать это — например, зайти в Настройки->Постоянные ссылки и заново сохранить текущие настройки. Это сбросит правила перезаписи URL.

Обратите внимание, что это не отключает архивы полностью; это лишь отключает красивый URL для доступа к ним (mysite.com/recipe/
в данном примере). Архив по-прежнему существует и доступен по адресу mysite.com/?post_type=recipe
, пока тип записи является публично запрашиваемым.
