web-dev-qa-db-fra.com

Comment cacher, et ne pas enlever les attributs metabox?

J'ai besoin de cacher et de ne pas supprimer les attributs de la méta-boîte dans le backend.

Le code suivant supprime la metabox:

function hide_meta_box_attributes() {
remove_meta_box('pageparentdiv', 'post', 'normal'); } 
add_filter('add_meta_boxes', 'hide_meta_boxes_attributes');

Le problème, c’est que j’exécute des publications hiérarchiques, ce qui signifie que j’ai besoin d’avoir la possibilité d’avoir des publications et des sous-propositions, ce qui est activé par ce metabox. Lorsque je supprime la metabox, la fonctionnalité ne fonctionne plus. Mais pour mes auteurs, j'ai besoin de cacher ces attributs metabox.

Quelqu'un sait-il comment trouver une solution à ce problème?

1
Traveler

La fonction get_hidden_meta_boxes ( lien source ) fournit deux filtres que vous pouvez utiliser pour masquer la méta-boîte. (Choisissez-en un seul.)

Le premier est default_hidden_meta_boxes ( source ), ajouter la métabox au tableau $ hidden masquera la métabox par défaut, mais l'utilisateur peut sélectionner l'onglet des options de l'écran. et choisissez de l'activer.

Le deuxième filtre s'appelle hidden_meta_boxes ( source ), ajouter la metabox au tableau $ hidden ici ne devrait masquer que cette metabox, point.

Exemple utilisant le filtre hidden_meta_boxes:

function hide_meta_box_attributes( $hidden, $screen) {

    $hidden[] = 'pageparentdiv';
    return $hidden;

} 
add_filter('hidden_meta_boxes', 'hide_meta_box_attributes', 10, 2);
3
TomHarrigan