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


17

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

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

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

Благодарю.


1
Вы сбросили свои правила переписывания после настройки 'has_archive' => false?
Чип Беннет

Хороший вопрос @ChipBennett, я не сделал! Работает, как и ожидалось, спасибо :)
Shellbot

Ответы:


29

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


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

3
Обратите внимание, что это на самом деле не отключает архивы; он только отключает красивые URL для доступа к ним ( mysite.com/recipe/в этом примере). Архив все еще существует и доступен mysite.com/?post_type=recipeдо тех пор, пока тип сообщения доступен для общего доступа.
Марк
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.