J'ai deux taxonomies personnalisées hiérarchiques, chacune sur un type de publication personnalisé correspondant. Je voudrais supprimer la metabox pour chacun sur l'écran d'édition du type de message.
J'ai lu Supprimer le type de publication personnalisé du formulaire de métaboxe de taxonomie personnalisée et Comment supprimer un métabox de taxonomie de style catégorie (hiérarchique)? mais je suis toujours coincé.
La fonction que j'utilise est:
function remove_taxonomies_metaboxes() {
remove_meta_box( 'partner_typediv', 'partners', 'normal' );
remove_meta_box( 'person_typediv', 'people', 'normal' );
}
add_action( 'admin_menu' , 'remove_taxonomies_metaboxes' );
J'ai non préfixé les post_types et custom_taxonomies, mais c'est tout. J'ai essayé d'utiliser le admin_menu
crochet et le add_meta_boxes
crochet recommandé par le Codex. J'ai essayé les deux normal
et side
pour le troisième paramètre.
La fonction ci-dessus est située dans un mu-plugins
fichier sous la fonction qui enregistre les types de messages et les taxonomies.
EDIT: C'était une faute de frappe dans la fonction register_taxonomy. Je suis une horrible personne. Merci à tous pour l'aide. J'ai encore appris des trucs!
'show_ui' => false
?Réponses:
Si vous enregistrez manuellement votre taxonomie personnalisée via register_taxonomy, vous pouvez passer des arguments pour contrôler où la métabox apparaît.
Dans l'exemple ci-dessous, le paramètre
show_ui
àfalse
supprimerait complètement la métaboxe de l'écran d'édition, de l'écran d'édition rapide et du menu d'administration. Mais si vous définissezshow_ui
surtrue
vous pouvez obtenir un contrôle plus nuancé en utilisant ensuite les argumentsshow_in_quick_edit
etmeta_box_cb
(en définissant ce dernier sur false masque la métabox sur l'écran d'édition CPT comme vous le souhaitez).la source
Vous dites que vous souhaitez supprimer les cases de l'
post
écran d'édition, pas de l'écran Type de publication, donc en supposant que vous devriez être en mesure d' enregistrer votre taxonomie uniquement pour les types de publication auxquels vous souhaitez qu'il s'applique, et évitez complètement cela. L'exemple du Codex enregistre l'exemple de taxonomie uniquement pour lebook
type de message comme:Je pense que c'est ce que vous devez faire, mais vous n'avez publié aucun code d'enregistrement pour les types de poste ou les taxonomies.
Si vous avez créé les méta-boîtes vous-même - c'est-à-dire que ces boîtes ne sont pas celles par défaut - alors la façon d'éviter ce problème est d'enregistrer les méta-boîtes sur les crochets spécifiques de type post :
Ou pour suivre l'exemple ci-dessus:
Une de ces approches devrait résoudre ce problème pour vous. Je ne pense pas que vous devriez utiliser
remove_meta_box
du tout.Si vous essayez de supprimer les métadonnées du type de publication auquel elles sont enregistrées, cela fonctionne (à nouveau en suivant l'exemple du Codex):
Je suis presque sûr que
admin_menu
c'est trop tôt, mais je n'ai pas vérifié cela.add_metaboxes
fonctionne aussi pour moi. Je ne sais pas pourquoi ça ne marche pas pour toi.la source
En utilisant ACF pour la gestion des taxonomies personnalisées, les métaboxes par défaut ne sont pas nécessaires. J'ai essayé avec succès ce code:
La priorité inférieure (100) laisse ce code fonctionner également si les taxonomies sont créées par un plugin comme CPT-UI.
la source
remove_meta_box( 'tagsdiv-'.$taxonomy, $post_type, 'side' );