Comment supprimer une archive de type de publication personnalisée

17

J'ai un type de message personnalisé appelé "recette" avec le has_archiveparamètre défini sur true. Visiter mysite.com/recipe/ donne une liste d'archives de base de toutes les recettes publiées et un titre de page de "Recettes". Jusqu'ici tout va bien.

Maintenant, je cherche à désactiver cette page d'archive de recette (mais garder les liens de recette individuels qui fonctionnent). Ma première pensée a été d'essayer de définir has_archivefalse, ce qui semble faire l'affaire. Nan. La seule différence que cela fait est le titre de la page qui, pour une raison quelconque, devient le nom du site. L'archive réelle est toujours affichée.

Quelle est la meilleure façon de supprimer complètement cette archive? Existe-t-il un paramètre register_post_typepermettant d'atteindre cet objectif ou est-ce impossible et un cas d'un modèle de page personnalisé avec une redirection?

Merci.

Shellbot
la source
1
Avez-vous vidé vos règles de réécriture après avoir défini 'has_archive' => false?
Chip Bennett
Bon point @ChipBennett, je ne l'ai pas fait! Fonctionne comme prévu maintenant, merci :)
Shellbot

Réponses:

29

Le has_archiveparamètre pour register_post_type()fait exactement ce que vous attendez de lui. Cependant, il modifie les règles de réécriture lorsqu'il est défini. Donc, si vous le changez en false, vous devrez vider vos règles de réécriture pour que l'affichage de l'index d'archive soit entièrement supprimé.

Chip Bennett
la source
Remarque: cela ne doit être fait qu'une seule fois. Un moyen simple de le faire est, par exemple, de visiter Paramètres-> Permaliens et de réenregistrer les paramètres actuels. Cela videra les règles de réécriture.
nico
3
Notez que cela ne désactive pas réellement les archives; il désactive uniquement la jolie URL pour y accéder ( mysite.com/recipe/dans cet exemple). L'archive existe toujours et est accessible mysite.com/?post_type=recipetant que le type de publication est publiquement interrogeable.
Mark