Jak usunąć niestandardowe archiwum typów postów

17

Mam niestandardowy typ postu o nazwie „przepis” z has_archiveparametrem ustawionym na true. Odwiedzając stronę mysite.com/recipe/, uzyskujesz podstawową listę archiwalną wszystkich opublikowanych przepisów oraz tytuł strony „Przepisy”. Jak na razie dobrze.

Teraz chcę wyłączyć tę stronę archiwum przepisów (ale utrzymuj działanie poszczególnych linków do przepisów). Moją pierwszą myślą było spróbowanie ustawienia wartości has_archivefalse, co brzmi jak powinno wystarczyć. Nie. Jedyną różnicą, jaką to robi, jest tytuł strony, który z jakiegoś powodu staje się nazwą strony. Rzeczywiste archiwum jest nadal wyświetlane.

Jaki jest najlepszy sposób całkowitego usunięcia tego archiwum? Czy jest jakiś parametr, register_post_typektóry to osiągnie, czy jest to niemożliwe i przypadek niestandardowego szablonu strony z przekierowaniem?

Dzięki.

Shellbot
źródło
1
Czy opróżniłeś swoje reguły przepisywania po ustawieniu 'has_archive' => false?
Chip Bennett,
Dobra uwaga @ChipBennett, nie zrobiłem tego! Działa zgodnie z oczekiwaniami, dzięki :)
Shellbot 10.10.13

Odpowiedzi:

29

has_archiveParametr register_post_type()robi dokładnie to, czego od niego oczekujesz. Jednak modyfikuje reguły przepisywania po ustawieniu. Jeśli więc zmienisz na false, musisz opróżnić reguły przepisywania , aby całkowicie usunąć indeks indeksu archiwum.

Chip Bennett
źródło
Uwaga: należy to zrobić tylko raz. Łatwym sposobem na to jest na przykład przejście do Ustawień-> Łącza bezpośrednie i ponowne zapisanie bieżących ustawień. Spowoduje to opróżnienie reguł przepisywania.
nico
3
Zauważ, że tak naprawdę nie wyłącza to archiwów; wyłącza tylko ładny URL dostępu do nich ( mysite.com/recipe/w tym przykładzie). Archiwum nadal istnieje i jest dostępne, o mysite.com/?post_type=recipeile typ wiadomości jest publicznie dostępny w zapytaniach.
Mark