web-dev-qa-db-fra.com

Modification de la priorité d'une métabox de taxonomie personnalisée

Je crée une nouvelle taxonomie personnalisée ( pas un type de publication personnalisé). Sur la page d'édition, cette taxonomie personnalisée apparaît au-dessus de toutes mes autres boîtes à méta. J'aimerais qu'il s'enfonce plus bas dans le groupe.

Je sais que la priorité peut être ajoutée via add_meta_box (). Malheureusement, j'utilise la méta-boîte par défaut créée par mon appel à register_taxonomy (), je n'ai donc aucun moyen de changer la valeur de priorité.

Comment puis-je changer la priorité de ma taxonomie personnalisée afin que sa méta-boîte associée apparaisse plus bas dans le groupe de méta-boîtes?

Merci! :)

4
rinogo

Comme c'est souvent le cas dans WP, il existe plusieurs façons de s'attaquer à ce problème. Voici un moyen possible:

function my_meta_box_order() {
    global $wp_meta_boxes;
    $genre = $wp_meta_boxes['post']['side']['core']['genrediv'];
    unset($wp_meta_boxes['post']['side']['core']['genrediv']);
    $wp_meta_boxes['post']['side']['core'] = array('genrediv' => $genre) + $wp_meta_boxes['post']['side']['core'];
}
add_action('add_meta_boxes_post', 'my_meta_box_order');
# We're hooking into: do_action('add_meta_boxes_' . $post_type, $post);

$wp_meta_boxes contient toutes les informations de la boîte à méta. C'est arrangé comme, $wp_meta_boxes[$page][$context][$priority][$id]. Vous pouvez le manipuler à votre guise pour réorganiser vos boîtes. Notez que cela peut être remplacé par glisser-déposer, bien sûr.

Pour référence, voici un certain nombre de crochets que vous pouvez accrocher:

do_action('add_meta_boxes', $post_type, $post);
do_action('add_meta_boxes_' . $post_type, $post);
do_action('do_meta_boxes', $post_type, 'normal', $post);
do_action('do_meta_boxes', $post_type, 'advanced', $post);
do_action('do_meta_boxes', $post_type, 'side', $post);

A bientôt ~

3
Matthew Boynes