WordPress: Meta-Boxen ein/ausschalten via functions.php

Normalerweise kann jeder Benutzer die Meta-Boxen rund um den Editor selbst zuschalten oder wegschalten (im Editorfenster rechts oben unter „Optionen“), bei Kundenprojekten kann es aber sinnvoll sein, manche der Boxen serienmäßig aus- oder einzuschalten oder deren Reihenfolge vorab festzulegen. Das geht mit ein bißl Bastelei recht flott:

– In den Verwaltungsbereich einloggen, das Editorfenster für Beiträge aufrufen (z.B. mit „Beitrag -> Erstellen“) und rechts oben unter „Optionen“ alle Boxen wegschalten, die nicht gebraucht werden.

–  Mindestens eine der Boxen an eine neue Position ziehen. Das kann man unmittelbar danach wieder rückgängig machen, aber so wird der entsprechende Eintrag in der Datenbanktabelle wp_usermeta angelegt.

– Nun kann man in der Datenbanktabelle wp_usermeta die Einträge

meta-box-order_post
metaboxhidden_post

zur eigenen Benutzer-ID suchen. Dort stehen die Reihenfolge der Boxen sowie die versteckten Boxen drin (zwar nicht ganz im Klartext, aber es sollte kein Problem sein).

– In der functions.php folgendes Codeschnipsel einfügen und entsprechend anpassen:

// Reihenfolge und eingeschaltete Editorboxen definieren
add_action('admin_init', 'set_user_metaboxes');
function set_user_metaboxes($user_id=NULL) {
    // aktuelle User-ID herausfinden
    if ( ! $user_id) $user_id = get_current_user_id(); 
    // 1. Reihenfolge für Meta-Boxen bei Beiträgen festlegen
    if ( ! get_user_meta( $user_id, 'meta-box-order_post', true) ) {
        $meta_value = array(
            'side' => 'categorydiv,submitdiv,postimagediv',
            'normal' => 'revisionsdiv,postcustom,commentstatusdiv,commentsdiv,slugdiv,authordiv',
            'advanced' => '',
            );
        update_user_meta( $user_id, 'meta-box-order_post', $meta_value );
	}
    // 2. Versteckte Meta-Boxen bei Beiträgen festlegen
    if ( ! get_user_meta( $user_id, 'metaboxhidden_post', true) ) {
        $meta_value = array('page_option_choice','postexcerpt','trackbacksdiv','postcustom','slugdiv'); 
        update_user_meta( $user_id, 'metaboxhidden_post', $meta_value ); 
        }
    // Hier ggf. noch gleichlautende Codes für Pages oder benutzerdefinierte Typen hinzufügen 
        // 1. Reihenfolge für Meta-Boxen bei Seiten festlegen (Code von oben anpassen)
        // 2. Versteckte Meta-Boxen bei Seiten festlegen (Code von oben anpassen)
 } // Ende der Funktion

– Für den Seiten-Editor lauten die entsprechenden Einträge in der wp_usermeta entsprechend metaboxhidden_page und meta-box-order_page, für benutzerdefinierte Beitragstypen metaboxhidden_TYPE und meta-box-order_TYPE, ansonsten bleibt die Vorgangsweise gleich.

Diesen Beitrag teilen (bereits 0 Mal geteilt)

Ernst Michalek
Folgen:

Schreibe einen Kommentar