Coding | Hooks und Filter | PHP | WordPress

WordPress post-edit-screen, Standardeinstellung soll mehr Metaboxen ausblenden

box 1851482 1920

Wenn es um die Frage WordPress-Dashboard aufräumen geht, finde ich massenhaft Anleitungen Metaboxen unwiderruflich auszublenden. Darüber, wie man sie nur versteckt, aber weiterhin über die Anpassungseinstellungen zugänglich hält, fand ich hingegen wenig. Zumindest für den Bearbeitungsbereich von Beiträgen und Seiten gibt es einen Filter.

/**
 * Default hidden metaboxes on post edit screen
 */
 
function pppf_hidden_meta_post_edit( $hidden, $screen ) {
    $hidden_new = array( 'tagsdiv', 'formatdiv', 'pageparentdiv', 'postcustom', 'commentstatusdiv', 'autordiv' );
    return array_merge( $hidden, $hidden_new ); 
}
add_filter( 'default_hidden_meta_boxes', 'pppf_hidden_meta_post_edit', 10, 2 );

Bei Dashboard-Metaboxen wird es etwas schwieriger, da man diese über die jeweiligen Benutzereinstellungen anpasst. Neu definierte Standards für bestehende Benutzer würden bereits angepasste Umgebungen zurücksetzen. Andernfalls würde es nur Sinn machen, die Einstellungen einmalig (z.B. über einen Plugin-Activation-Hook, der eine Flag setzt, sodass der Reset sicher nur einmal ausgeführt wird) zurückzusetzen.

clean dashboard

Über den user_register-Hook lassen sich die Einstellungen für jeden neuen User auf ein Mindestmaß sichtbarer Boxen beschränken. Spätere Änderungen seitens der Benutzer bleiben erhalten.

function pptf_dashboard_authors_startdashboard( $user_id ) {
    $user = get_userdata( $user_id );
    $dashboard = array('dashboard_incoming_links', 'dashboard_activity','dashboard_plugins', 'dashboard_stats', 'dashboard_recent_drafts', 'dashboard_primary', 'dashboard_secondary');
    update_user_meta( $user->ID, 'metaboxhidden_dashboard', $dashboard );
}
add_action( 'user_register', 'pptf_dashboard_authors_startdashboard');

weiter schmökern

Schreibe einen Kommentar

Bitte Kommentarfunktion nicht für Supportanfragen nutzen. Dem kann hier nicht entsprochen werden.

Deine E-Mail-Adresse wird nicht veröffentlicht.