Как удалить архив пользовательских типов записей

17

У меня есть пользовательский тип записи, называемый "рецепт" с has_archiveпараметром, установленным в true. Посещение mysite.com/recipe/ дает основной архив списка всех опубликованных рецептов и заголовок страницы "Рецепты". Все идет нормально.

Теперь я пытаюсь отключить эту страницу архива рецептов (но работаю с отдельными ссылками рецептов). Моей первой мыслью было попытаться установить has_archiveзначение false, что, похоже, должно сработать. Нет. Единственное отличие, которое это имеет, - это заголовок страницы, который по какой-то причине становится названием сайта. Фактический архив все еще отображается.

Каков наилучший способ полностью удалить этот архив? Есть ли параметр register_post_type, который достигнет этого, или это невозможно, и случай шаблона пользовательской страницы с перенаправлением в нем?

Благодарю.

Shellbot
источник
1
Вы сбросили свои правила переписывания после настройки 'has_archive' => false?
Чип Беннет
Хороший вопрос @ChipBennett, я не сделал! Работает, как и ожидалось, спасибо :)
Shellbot

Ответы:

29

has_archiveПараметр register_post_type()делает именно то , что вы ожидаете , что делать. Тем не менее, он изменяет правила перезаписи, когда установлено. Поэтому, если вы измените его на false, вам нужно сбросить правила перезаписи, чтобы полностью удалить отображение индекса архива.

Чип Беннетт
источник
Примечание: это нужно сделать один раз. Простой способ сделать это, например, зайти в Настройки-> Постоянные ссылки и повторно сохранить текущие настройки. Это очистит правила перезаписи.
Нико
3
Обратите внимание, что это на самом деле не отключает архивы; он только отключает красивые URL для доступа к ним ( mysite.com/recipe/в этом примере). Архив все еще существует и доступен mysite.com/?post_type=recipeдо тех пор, пока тип сообщения доступен для общего доступа.
Марк