it-swarm.com.de

Benutzerdefinierte Taxonomie als Kategorien: Tab "am häufigsten verwendet" entfernen?

Ich habe eine benutzerdefinierte Taxonomie für einen benutzerdefinierten Post-Typ erstellt, die als Kategorien für diesen Post-Typ fungiert.

Die Metabox für meine Taxonomie enthält zwei Registerkarten. Eine für meine Kategorien und eine zweite Registerkarte mit dem Namen "Am häufigsten verwendet", genau wie die normalen Kategorien für normale Beiträge.

Gibt es eine Möglichkeit, diesen Tab "Am häufigsten verwendet" zu entfernen?

Danke im Voraus?

2
mathiregister

Ja - Sie müssen zuerst die Metabox 'abmelden', die WordPress automatisch erstellt:

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

Wobei my-tax-metabox-id die ID Ihrer Metabox ist. Dann 'neu registrieren' Sie die Metabox mit Ihrer eigenen Rückruffunktion, die in der Ausgabe erzeugt:

//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';  
  } 

In diesem Fall müssen Sie lediglich das standardmäßige hierarchische Metabox-Markup imitieren, aber die Registerkarten entfernen. Vielleicht finden Sie diesen Artikel den ich geschrieben habe, wo ich das für einen etwas anderen Zweck mache, hilfreich. Kurz ausgecheckt: http://core.trac.wordpress.org/browser/tags/3.3/wp-admin/includes/meta-boxes.php#L307

Dies ist die Funktion, die für die Ausgabe hierarchischer Metaboxen verantwortlich ist. Sie sollten dies leicht ändern (Entfernen der Registerkarten und Definieren der Variablen $taxonomy usw.).

2
Stephen Harris

Für alle, die eine einfachere Lösung suchen, können Sie einfach das folgende CSS zum Backend hinzufügen, vorausgesetzt, die betreffende Taxonomie lautet "eventtype":

/* 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;
}

Sie können dieses CSS zu einem vorhandenen Admin-CSS oder mit einem einfachen Admin-Hook hinzufügen:

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
}

Dieses Beispiel zeigt Inline-CSS, Sie können jedoch auch ein externes CSS mit allen erforderlichen Regeln hinzufügen.

2
guidod