web-dev-qa-db-fra.com

Comment grouper des boîtes de méta sur la page d'édition post

Je soupçonne que cela n’est pas possible pour le moment, mais bon… je vais demander, l’un d’entre vous a peut-être des idées intéressantes à partager.

Supposons donc que nous avons les méta-boîtes de termes de taxonomie suivantes sur notre page de modification de publication:

  • Comptabilité d'équipe
  • Équipe supergurus
  • Des pays
  • Développeurs d'équipe
  • Glace préférée

Ne serait-il pas agréable de pouvoir regrouper les trois méta-boîtes "Team" dans un "conteneur" appelé "Teams"? Ce serait une méta-boîte juste et vide avec un titre, contenant les trois méta-boîtes de taxonomie.

L’objectif est d’être plus convivial et de regrouper les mêmes méta-boîtes (cela peut être très déroutant lorsque vous avez beaucoup de taxonomies)

Pensez-vous que cela est faisable?

4
mike23

Merci pour l'indice Bainternet, en effet c'est très facile à implémenter avec jQuery.

Exemple (les quatre méta-boîtes sont fermées pour plus de clarté):

Example of four taxonomy meta-boxes grouped into a container meta-box

Voici ce que j'ai fait:

var $j = jQuery.noConflict();
$j(document).ready(function() {
    $j("#side-sortables").append('<div id="container_div" class="postbox meta-box-sortables ui-sortable"><div class="handlediv" title="Click to toggle."><br></div><h3 class="hndle"><span>Container Meta Box</span></h3><div id="container_inside" class="inside"></div></div>');
    $j("#my_metabox_div").appendTo("#container_inside");
    $j("#my_other_metabox_div").appendTo("#container_inside");
    etc...
});

J'ai ajouté les classes meta-box-sortables et ui-sortable au conteneur div. Vous pouvez ainsi réorganiser les boîtes dans le conteneur (bien que ce soit un peu délicat, le div saute facilement ..).

Ce script est ensuite appelé sur la page d'administration que nous voulons avec:

function add_admin_scripts( $hook ) {
    // load script on new post page
    if ( $hook == 'post-new.php' ) {
        wp_enqueue_script( 'group_meta_boxes', get_bloginfo('template_directory').'/js/group_meta_boxes.js' );
    }
}
add_action('admin_enqueue_scripts','add_admin_scripts',10,1);
6
mike23