Quelqu'un connaît-il un moyen de désenregistrer des types de publication personnalisés?
Y a-t-il un équivalent à register_post_type()
?
Quelqu'un connaît-il un moyen de désenregistrer des types de publication personnalisés?
Y a-t-il un équivalent à register_post_type()
?
unregister_post_type
. VoirRéponses:
Actuellement, il n'existe pas de fonction permettant d'annuler l'enregistrement d'un type d'article, le processus est toutefois assez simple.
Andrew Nacin a fourni du code sur trac, disponible ici et affiché ci-dessous.
La désinscription d'un type de message intégré aura des effets inconnus sur WordPress. Veuillez donc le faire à vos risques et périls. L'annulation de l'enregistrement d'un type d'article personnalisé devrait être parfaitement sûre, mais aucun nettoyage ne serait naturellement effectué sur votre installation (c'est-à-dire que l'annulation d'un type d'article ne correspond pas à la suppression de données de la base de données).
Je peux imaginer quelques scénarios où cela pourrait être nécessaire, mais l'approche la plus judicieuse (dans la mesure du possible) serait simplement de ne pas enregistrer le type de message en premier lieu s'il n'est pas souhaité.
la source
register_post_type()
chargement de chaque page (init
) est probablement la structure de lien permanent (rafraîchissez-le et le fichier disparaîtra), ainsi que les publications dans la base de données que vous pouvez supprimer. en faisantDELETE FROM wp_posts WHERE post_type = '[your custom post type]'
.À partir de WordPress 4.5, il existe une fonction pour le faire
unregister_post_type
. Exemple:-la source
unregister_post_type()
cela ne supprime rien de la base de données. Cela empêche uniquement l'enregistrement du type de message.Cela a fonctionné pour moi, comme dit Rarst en utilisant remove_action () si possible.
la source
Comme t31os l’a noté, il est facile de supprimer le type de publication de la variable globale.
Mais si vous parlez de type de message non essentiel, il serait préférable de rechercher le code qui l'enregistre et de le décrocher
remove_action()
(s'il s'agit d'un code correct, il devrait être accroché plutôt que exécuté directement).la source
register_post_type()
n’est pas une fonction qui se prête bien à l’accrochage. La manière habituelle d’enregistrer un type de publication consiste à exécuter la fonction directement dans une fonction accrochée à init. La suppression de cette action peut avoir des effets indésirables, car d’autres fonctionnalités seront souvent supprimées avec cette fonction.Dans WordPress version 4.5 et ultérieure, ils fournissent une fonction permettant de supprimer le type de publication (unregister_post_type). Exemple
Cela fonctionnera définitivement.
la source