web-dev-qa-db-fra.com

Fonction de rappel de recherche pour la métaboxe de taxonomie personnalisée

Je cherche un moyen de déplacer ma métaboxe de taxonomie personnalisée (à droite) vers la zone de publication (au centre). Je suis conscient que vous pouvez simplement le glisser-déposer, mais je le veux par défaut dans la zone de publication pour les nouveaux utilisateurs.

Mon approche était de le supprimer en utilisant remove_meta_box(), puis de le rajouter en utilisant add_meta_box(). Le problème est que Je ne sais pas quelle fonction de rappel appeler lorsqu’il est ajouté.

/* Remove movies metabox from sidepanel */
function hide_metabox(){
    remove_meta_box( 'tagsdiv-movies', 'movies' , 'side' );
}
add_action( 'admin_menu' , 'hide_metabox' );


/* Add back movies metabox, but in post area */
add_action('add_meta_boxes', 'add_back_post');
    function add_back_post(){
    /* Not sure what to put as the thrid argument */
    add_meta_box('tagsdiv-movies','Movies', 'WHAT_CALLBACK_ARG', 'movies', 'normal', 'high');
}

 Custom metabox "movies" 

En guise de remarque, j'ai créé la taxonomie à l'aide de Interface utilisateur de type publication personnalisée (interface utilisateur CPT), qui suit essentiellement la procédure standard lors de la création d'une taxonomie personnalisée.

Je ne suis pas sûr non plus si cela répond à ma question car je ne suis pas tout à fait les informations fournies ici: Existe-t-il une fonction de rappel prédéfinie pour les catégories personnalisées? .

4
Dom

Le rappel dont vous avez besoin pour les taxonomies non hiérarchiques est post_tags_meta_box.

Le rappel dont vous avez besoin pour les taxonomies hiérarchiques est post_categories_meta_box.

Pour votre exemple, le code serait:

/* Remove movies metabox from sidepanel */
function hide_metabox(){
    remove_meta_box(
        'tagsdiv-movies',
        'your-post-type' ,
        'side'
    );
}
add_action( 'admin_menu' , 'hide_metabox' );


/* Add back movies metabox, but in post area */
add_action('add_meta_boxes', 'add_back_post');
    function add_back_post(){
    add_meta_box(
        'tagsdiv-movies',
        'Movies',
        'post_tags_meta_box',
        'your-post-type',
        'normal',
        'high',
        array( 'taxonomy' => 'movies' )
    );
}

Une autre variable importante est l'ID de metabox. Dans votre exemple, tagsdiv-movies cible une métabox pour une taxonomie non hiérarchique avec slug movies. Si cette même taxonomie était hiérarchique, l'ID serait moviesdiv.

5
Milo