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