web-dev-qa-db-fra.com

Taxonomie personnalisée en tant que catégories: supprimer l'onglet "le plus utilisé"?

J'ai créé une taxonomie personnalisée pour un type de publication personnalisé qui fonctionne comme un type de catégorie pour ce type de publication.

Le Metabox pour ma taxonomie a deux onglets. Un pour mes catégories et un deuxième onglet appelé "le plus utilisé", tout comme les catégories normales pour les messages normaux a.

Existe-t-il un moyen de se débarrasser de cet onglet "Le plus utilisé"?

Merci d'avance?

2
mathiregister

Oui, vous devez d'abord "désenregistrer" la metabox WordPress crée automatiquement:

add_action( 'admin_menu', 'myprefix_remove_meta_box');  
function myprefix_remove_meta_box(){  
   remove_meta_box('my-tax-metabox-id', 'post', 'normal');  
}  

my-tax-metabox-id est l'ID de votre metabox. Puis 'ré-enregistrez' la metabox en fournissant votre propre fonction de rappel qui produit dans la sortie:

//Add new taxonomy meta box  
 add_action( 'add_meta_boxes', 'myprefix_add_meta_box');  
 function myprefix_add_meta_box() {  
     add_meta_box( 'mytaxonomymetabox_id', 'My Taxonomy','myprefix_mytaxonomy_metabox','post' ,'side','core');  
 }  

  function myprefix_mytaxonomy_metabox( $post ) {  
     //This function determines what displays in your metabox
     echo 'This is my taxonomy metabox';  
  } 

Ensuite, il suffit simplement de mimer le balisage metabox hiérarchique 'par défaut' tout en supprimant les onglets. Vous pourriez trouver cet article j'ai écrit, où je fais cela dans un but légèrement différent, utile. En bref, consultez: http://core.trac.wordpress.org/browser/tags/3.3/wp-admin/includes/meta-boxes.php#L307

C'est la fonction responsable de la sortie des métaboxes hiérarchiques - vous voudrez le modifier légèrement (en supprimant les onglets, en définissant la variable $taxonomy, etc.

2
Stephen Harris

Pour ceux qui recherchent une solution plus simple, vous pouvez simplement ajouter le code CSS suivant au backend, par exemple, en supposant que la taxonomie en question est "type d'événement":

/* make sure tabs and the popular div itself are not shown */
#eventtype-pop,#eventtype-tabs{
    display: none !important;
}
/* make sure the All Terms div is always shown, and remove extra spacing and styles */
#eventtype-all,#eventtype-all,#eventtype-all ul,#eventtype-all ul{
    display: block !important;
    padding:0;
    margin:0;
    background: transparent;
    border:0;
}

Vous pouvez ajouter ce CSS à un CSS administrateur existant ou avec un simple raccord administrateur:

add_action('admin_head', 'adminCSS');

function adminCSS(){
    ?><style type='text/css'>
    /* make sure tabs and the popular div itself are not shown */
    #eventtype-pop,#eventtype-tabs{
        display: none !important;
    }
    /* make sure the All Terms div is always shown, and remove extra spacing and styles */
    #eventtype-all,#eventtype-all,#eventtype-all ul,#eventtype-all ul{
        display: block !important;
        padding:0;
        margin:0;
        background: transparent;
        border:0;
    }
    </style><?php
}

Cet exemple montre les CSS en ligne, mais vous pouvez très bien ajouter un CSS externe avec toutes les règles dont vous avez besoin.

2
guidod