Mit der Zeit sammeln sich im WordPress-Dashboard immer mehr Widgets, Hinweise und Plugin-Bereiche. Vieles davon brauchst Du im Alltag nicht. Gleichzeitig fehlen häufig direkte Links und kleine Werkzeuge, die Deine Arbeit tatsächlich beschleunigen.
In dieser Anleitung zeige ich Dir, wie Du Dein WordPress-Dashboard aufräumen, Widgets ausblenden und die Adminbar anpassen kannst. Du beginnst mit den WordPress-Bordmitteln und ergänzt anschließend bei Bedarf eigene Funktionen wie eine DuckDuckGo-Suche, einen Search-Console-Link, RSS-Nachrichten, persönliche Notizen oder eine Linkliste.
💡 Pro-Tipp:
Vor Codeänderungen: Erstelle ein Backup und teste neue Snippets nach Möglichkeit zuerst auf einer Staging-Seite. Füge PHP-Code nicht direkt in das Haupt-Theme ein.
Inhaltsverzeichnis
- 1 Welche Methode passt zu Deinem Dashboard?
- 2 Dashboard-Widgets mit WordPress-Bordmitteln ausblenden
- 3 Dashboard-Widgets dauerhaft per Code entfernen
- 4 WordPress-Adminbar personalisieren
- 5 Eigene Funktionen zum Dashboard hinzufügen
- 6 Adminimize als Alternative ohne eigene Snippets
- 7 Sicherheit und Wartung der Dashboard-Snippets
- 8 Fazit: Ein aufgeräumtes WordPress-Dashboard spart Zeit
- 9 Häufige Fragen zum WordPress-Dashboard
- 9.1 Kann ich WordPress-Dashboard-Widgets ohne Code ausblenden?
- 9.2 Wie entferne ich ein Dashboard-Widget dauerhaft?
- 9.3 Muss ich dafür die functions.php bearbeiten?
- 9.4 Wie werden eigene Dashboard-Notizen sicher gespeichert?
- 9.5 Kann ich eigene Links zur WordPress-Adminbar hinzufügen?
- 9.6 Wann ist Adminimize statt eigener Snippets sinnvoll?
Welche Methode passt zu Deinem Dashboard?
| Ziel | Passende Methode | Wirkung |
|---|---|---|
| Widgets nur für Dich ausblenden | Ansicht anpassen | Benutzerbezogene Einstellung ohne Code |
| Widgets dauerhaft entfernen | remove_meta_box() | Für alle oder ausgewählte Benutzerrollen |
| Adminbar um Links oder Suche ergänzen | admin_bar_menu | Eigene Werkzeuge für angemeldete Benutzer |
| Eigene Dashboard-Widgets hinzufügen | wp_add_dashboard_widget() | RSS, Notizen oder Linklisten |
| Viele Backend-Bereiche nach Rollen ausblenden | Adminimize | Umfangreiche Konfiguration ohne eigenen Code |
Dashboard-Widgets mit WordPress-Bordmitteln ausblenden
Für das eigene Benutzerkonto brauchst Du meistens kein Snippet. WordPress bietet im Dashboard oben rechts den Bereich Ansicht anpassen. Dort kannst Du nicht benötigte Widgets mit einem Klick ausblenden.

- Öffne im WordPress-Backend das Dashboard.
- Klicke oben rechts auf Ansicht anpassen.
- Entferne die Häkchen bei den Widgets, die Du nicht benötigst.
- Ordne verbleibende Widgets per Drag-and-drop neu an.
Typische Kandidaten sind „Aktivität“, „Schneller Entwurf“, „WordPress-Veranstaltungen und Neuigkeiten“ oder „Auf einen Blick“. Je nach installierten Plugins erscheinen weitere Widgets.
- Pretty Links
- Fluent Forms
- Advanced Ads
Diese drei Plugin-Namen sind Beispiele aus einer früheren Konfiguration meiner Website. Nutzt Du eines der Plugins nicht, erscheint das betreffende Widget bei Dir nicht. Außerdem können Plugin-Entwickler interne Widget-IDs ändern.
Die Auswahl unter „Ansicht anpassen“ wird pro Benutzer gespeichert. Andere Administratoren oder Redakteure sehen weiterhin ihre eigene Dashboard-Konfiguration. Möchtest Du Widgets für mehrere Benutzer verbindlich entfernen, brauchst Du ein Snippet oder ein geeignetes Plugin.
Dashboard-Widgets dauerhaft per Code entfernen
WordPress registriert seine Dashboard-Widgets als Meta-Boxen. Mit remove_meta_box() kannst Du sie über den Hook wp_dashboard_setup entfernen. Das ist sinnvoll, wenn bestimmte Widgets für alle Benutzer verschwinden sollen oder Du ein einheitliches Backend für Kunden und Redakteure einrichtest.
Ich empfehle, die Snippets mit dem Plugin Code Snippets oder als eigenes kleines Plugin einzubinden. So bleiben Deine Anpassungen auch nach einem Theme-Update erhalten.
Der folgende Code entfernt die ausgewählten Standard-Widgets. Die Zeilen für Pretty Links, Fluent Forms und Advanced Ads sind optionale Beispiele. Funktionieren sie mit Deiner Plugin-Version nicht, musst Du die aktuelle Widget-ID ermitteln oder die betreffende Zeile entfernen.
/**
* Entfernt ausgewählte Standard-Widgets aus dem WordPress-Dashboard.
*
* Optionale Plugin-Widgets müssen mit ihrer aktuellen Meta-Box-ID
* ergänzt werden. Eine falsche oder nicht mehr vorhandene ID hat
* keine Wirkung.
*/
function dwf_remove_dashboard_widgets(): void {
remove_meta_box( 'dashboard_activity', 'dashboard', 'normal' );
remove_meta_box( 'dashboard_quick_press', 'dashboard', 'side' );
remove_meta_box( 'dashboard_primary', 'dashboard', 'side' );
remove_meta_box( 'dashboard_right_now', 'dashboard', 'normal' );
/*
* Beispiele für Plugin-Widgets:
*
* remove_meta_box( 'AKTUELLE_WIDGET_ID', 'dashboard', 'normal' );
*
* Übernimm funktionierende IDs aus Deinem bisherigen Snippet.
* Pretty Links, Fluent Forms und Advanced Ads können ihre IDs
* zwischen Versionen ändern.
*/
}
add_action( 'wp_dashboard_setup', 'dwf_remove_dashboard_widgets', 999 );
Beschränke die Entfernung bei Bedarf mit current_user_can() auf bestimmte Rollen oder Fähigkeiten. Ein Administrator kann dann beispielsweise mehr Widgets sehen als ein Redakteur.
Möchtest Du nicht das Dashboard, sondern die Tabelle unter Beiträge > Alle Beiträge anpassen? Im Artikel WordPress-Beitragsübersicht übersichtlicher gestalten zeige ich Dir zusätzliche Spalten für Wortzahl, Lesezeit, Aktualisierungsdatum und Beitragsbilder.
WordPress-Adminbar personalisieren
Die Adminbar erscheint für angemeldete Benutzer im Backend und, sofern nicht deaktiviert, auch im Frontend. Über den Hook admin_bar_menu kannst Du eigene Einträge ergänzen. Zeige sensible oder administrative Links nur Benutzern, die sie tatsächlich benötigen.
DuckDuckGo-Suche in die Adminbar einfügen
Ein kleines Suchfeld in der Adminbar ist praktisch, wenn Du während des Schreibens häufig Begriffe, Dokumentationen oder Quellen nachschlägst. Das folgende Snippet öffnet Suchergebnisse in einem neuen Tab.
/**
* Fügt angemeldeten Autoren und Administratoren ein
* DuckDuckGo-Suchfeld zur WordPress-Adminbar hinzu.
*/
function dwf_add_duckduckgo_search_to_adminbar( WP_Admin_Bar $admin_bar ): void {
if ( ! is_user_logged_in() || ! current_user_can( 'edit_posts' ) ) {
return;
}
$form = sprintf(
'<form action="%1$s" method="get" target="_blank" rel="noopener" style="display:flex;align-items:center;height:32px;padding:0 8px;">'
. '<label class="screen-reader-text" for="dwf-adminbar-search">%2$s</label>'
. '<input id="dwf-adminbar-search" name="q" type="search" placeholder="%3$s" '
. 'style="width:170px;height:24px;margin:0;border:0;border-radius:3px;padding:2px 7px;" />'
. '</form>',
esc_url( 'https://duckduckgo.com/' ),
esc_html__( 'DuckDuckGo durchsuchen', 'dwf' ),
esc_attr__( 'Web durchsuchen', 'dwf' )
);
$admin_bar->add_node(
array(
'id' => 'dwf-duckduckgo-search',
'title' => $form,
'meta' => array(
'class' => 'dwf-duckduckgo-search',
'title' => esc_attr__( 'DuckDuckGo durchsuchen', 'dwf' ),
),
)
);
}
add_action( 'admin_bar_menu', 'dwf_add_duckduckgo_search_to_adminbar', 100 );
Das Suchfeld sollte nur für angemeldete Benutzer erscheinen. Möchtest Du es ausschließlich Autoren und Administratoren anzeigen, kannst Du zusätzlich eine Fähigkeitsprüfung wie current_user_can( 'edit_posts' ) verwenden.
Google Search Console direkt verlinken
Ein direkter Link zur richtigen Search-Console-Property spart den Umweg über die Property-Auswahl. Das Snippet verwendet den Parameter resource_id und zeigt den Link nur Benutzern mit administrativen Rechten.
/**
* Fügt Administratoren einen direkten Link zur gewünschten
* Google-Search-Console-Property hinzu.
*/
function dwf_add_search_console_link( WP_Admin_Bar $admin_bar ): void {
if ( ! is_user_logged_in() || ! current_user_can( 'manage_options' ) ) {
return;
}
/*
* URL-Präfix-Property:
* $property = 'https://example.com/';
*
* Domain-Property:
* $property = 'sc-domain:example.com';
*/
$property = 'https://example.com/';
$search_console_url = add_query_arg(
'resource_id',
$property,
'https://search.google.com/search-console'
);
$admin_bar->add_node(
array(
'id' => 'dwf-search-console',
'title' => 'Search Console',
'href' => esc_url( $search_console_url ),
'meta' => array(
'target' => '_blank',
'rel' => 'noopener noreferrer',
'title' => 'Google Search Console öffnen',
),
)
);
}
add_action( 'admin_bar_menu', 'dwf_add_search_console_link', 100 );
Trage im Snippet Deine eigene Property ein. Für eine URL-Präfix-Property verwendest Du beispielsweise https://example.com/. Bei einer Domain-Property lautet der Wert beispielsweise sc-domain:example.com. Entferne Tracking-Parameter wie utm_source, da sie für diesen internen Arbeitslink keinen Nutzen haben.
Eigene Funktionen zum Dashboard hinzufügen
Mit wp_add_dashboard_widget() kannst Du eigene Inhalte in das WordPress-Dashboard einfügen. Die folgenden Beispiele sind unabhängig voneinander. Aktiviere nur die Funktionen, die Du tatsächlich nutzt.
RSS-Feed als Dashboard-Widget anzeigen
Ein RSS-Widget eignet sich für Branchen-News, WordPress-Meldungen oder Deinen eigenen Blog-Feed. Lege Feed-URL, Widget-Titel und Anzahl der Beiträge am Anfang des Snippets fest. So musst Du später nicht im gesamten Code nach den Einstellungen suchen.
/**
* Registriert ein eigenes RSS-Widget im Dashboard.
*/
function dwf_register_rss_dashboard_widget(): void {
wp_add_dashboard_widget(
'dwf_rss_dashboard_widget',
'WordPress-News',
'dwf_render_rss_dashboard_widget'
);
}
add_action( 'wp_dashboard_setup', 'dwf_register_rss_dashboard_widget' );
/**
* Gibt die aktuellsten Einträge eines RSS-Feeds aus.
*/
function dwf_render_rss_dashboard_widget(): void {
$feed_url = 'https://wordpress.org/news/feed/';
$max_items = 5;
require_once ABSPATH . WPINC . '/feed.php';
$rss = fetch_feed( $feed_url );
if ( is_wp_error( $rss ) ) {
echo '<p>Der RSS-Feed konnte momentan nicht geladen werden.</p>';
return;
}
$item_count = $rss->get_item_quantity( $max_items );
$items = $rss->get_items( 0, $item_count );
if ( empty( $items ) ) {
echo '<p>Im RSS-Feed wurden keine Beiträge gefunden.</p>';
return;
}
echo '<ul>';
foreach ( $items as $item ) {
$title = $item->get_title();
$url = $item->get_permalink();
$date = $item->get_date( 'd.m.Y' );
echo '<li>';
echo '<a href="' . esc_url( $url ) . '" target="_blank" rel="noopener noreferrer">';
echo esc_html( $title );
echo '</a>';
if ( $date ) {
echo '<br><small>' . esc_html( $date ) . '</small>';
}
echo '</li>';
}
echo '</ul>';
}
Wird der Feed vorübergehend nicht erreicht, sollte das Widget eine verständliche Meldung ausgeben und nicht das gesamte Dashboard mit einem Fehler blockieren.
Persönliche Notizen sicher speichern
Eine kleine Notizfunktion ist für To-dos, Artikelideen oder kurzfristige Erinnerungen oft hilfreicher als das Widget „Schneller Entwurf“. Die Notizen sollten pro Benutzer gespeichert werden, damit andere angemeldete Nutzer sie nicht sehen.
Wichtig ist die technische Absicherung: Formulare zum Speichern oder Löschen benötigen eine Nonce-Prüfung. Die Eingaben werden außerdem bereinigt, bevor WordPress sie in den User-Metadaten speichert.
/**
* Registriert das persönliche Notiz-Widget.
*/
function dwf_register_notes_dashboard_widget(): void {
wp_add_dashboard_widget(
'dwf_personal_notes_widget',
'Meine Notizen',
'dwf_render_notes_dashboard_widget'
);
}
add_action( 'wp_dashboard_setup', 'dwf_register_notes_dashboard_widget' );
/**
* Gibt die persönlichen Notizen und Formulare aus.
*/
function dwf_render_notes_dashboard_widget(): void {
$user_id = get_current_user_id();
$notes = get_user_meta( $user_id, 'dwf_dashboard_notes', true );
if ( ! is_array( $notes ) ) {
$notes = array();
}
if ( isset( $_GET['dwf_note_saved'] ) ) {
echo '<div class="notice notice-success inline"><p>Notiz gespeichert.</p></div>';
}
if ( isset( $_GET['dwf_note_deleted'] ) ) {
echo '<div class="notice notice-success inline"><p>Notiz gelöscht.</p></div>';
}
if ( $notes ) {
echo '<ul style="margin-bottom:18px;">';
foreach ( $notes as $note ) {
if ( empty( $note['id'] ) || empty( $note['text'] ) ) {
continue;
}
echo '<li style="margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #dcdcde;">';
echo '<div style="white-space:pre-wrap;margin-bottom:6px;">'
. esc_html( $note['text'] )
. '</div>';
echo '<form action="' . esc_url( admin_url( 'admin-post.php' ) ) . '" method="post">';
echo '<input type="hidden" name="action" value="dwf_delete_dashboard_note">';
echo '<input type="hidden" name="note_id" value="' . esc_attr( $note['id'] ) . '">';
wp_nonce_field( 'dwf_delete_dashboard_note_' . $note['id'] );
submit_button( 'Löschen', 'delete small', 'submit', false );
echo '</form>';
echo '</li>';
}
echo '</ul>';
} else {
echo '<p>Noch keine Notiz gespeichert.</p>';
}
echo '<form action="' . esc_url( admin_url( 'admin-post.php' ) ) . '" method="post">';
echo '<input type="hidden" name="action" value="dwf_save_dashboard_note">';
wp_nonce_field( 'dwf_save_dashboard_note' );
echo '<p><label for="dwf-dashboard-note"><strong>Neue Notiz</strong></label></p>';
echo '<textarea id="dwf-dashboard-note" name="note" rows="4" class="widefat" required></textarea>';
submit_button( 'Notiz speichern' );
echo '</form>';
}
/**
* Speichert eine neue Notiz für den angemeldeten Benutzer.
*/
function dwf_save_dashboard_note(): void {
if ( ! is_user_logged_in() ) {
wp_die( 'Du musst angemeldet sein.', 403 );
}
check_admin_referer( 'dwf_save_dashboard_note' );
$note_text = isset( $_POST['note'] )
? sanitize_textarea_field( wp_unslash( $_POST['note'] ) )
: '';
if ( '' !== $note_text ) {
$user_id = get_current_user_id();
$notes = get_user_meta( $user_id, 'dwf_dashboard_notes', true );
if ( ! is_array( $notes ) ) {
$notes = array();
}
$notes[] = array(
'id' => wp_generate_uuid4(),
'text' => $note_text,
'created_at' => current_time( 'mysql' ),
);
update_user_meta( $user_id, 'dwf_dashboard_notes', $notes );
}
wp_safe_redirect(
add_query_arg( 'dwf_note_saved', '1', admin_url( 'index.php' ) )
);
exit;
}
add_action( 'admin_post_dwf_save_dashboard_note', 'dwf_save_dashboard_note' );
/**
* Löscht eine einzelne Notiz des angemeldeten Benutzers.
*/
function dwf_delete_dashboard_note(): void {
if ( ! is_user_logged_in() ) {
wp_die( 'Du musst angemeldet sein.', 403 );
}
$note_id = isset( $_POST['note_id'] )
? sanitize_text_field( wp_unslash( $_POST['note_id'] ) )
: '';
check_admin_referer( 'dwf_delete_dashboard_note_' . $note_id );
$user_id = get_current_user_id();
$notes = get_user_meta( $user_id, 'dwf_dashboard_notes', true );
if ( is_array( $notes ) && $note_id ) {
$notes = array_values(
array_filter(
$notes,
static function ( $note ) use ( $note_id ): bool {
return empty( $note['id'] ) || ! hash_equals( (string) $note['id'], $note_id );
}
)
);
update_user_meta( $user_id, 'dwf_dashboard_notes', $notes );
}
wp_safe_redirect(
add_query_arg( 'dwf_note_deleted', '1', admin_url( 'index.php' ) )
);
exit;
}
add_action( 'admin_post_dwf_delete_dashboard_note', 'dwf_delete_dashboard_note' );

Eine Nonce bestätigt, dass die Aktion aus einer vorgesehenen WordPress-Ansicht stammt. Sie ersetzt keine Berechtigungsprüfung. Deshalb prüft das korrigierte Snippet zusätzlich, ob ein Benutzer angemeldet ist.
Eigene Linkliste als Dashboard-Widget
Eine Linkliste bündelt häufig genutzte Ziele an einer Stelle. Du kannst interne Bereiche wie die Beitragsübersicht, die Mediathek oder die Plugin-Verwaltung ebenso aufnehmen wie externe Arbeitswerkzeuge.

/**
* Registriert eine anpassbare Linkliste im Dashboard.
*/
function dwf_register_links_dashboard_widget(): void {
wp_add_dashboard_widget(
'dwf_links_dashboard_widget',
'Wichtige Links',
'dwf_render_links_dashboard_widget'
);
}
add_action( 'wp_dashboard_setup', 'dwf_register_links_dashboard_widget' );
/**
* Gibt interne und externe Arbeitslinks aus.
*/
function dwf_render_links_dashboard_widget(): void {
$links = array(
array(
'label' => 'Beiträge bearbeiten',
'url' => admin_url( 'edit.php' ),
'new_tab' => false,
),
array(
'label' => 'Mediathek öffnen',
'url' => admin_url( 'upload.php' ),
'new_tab' => false,
),
array(
'label' => 'Website anzeigen',
'url' => home_url( '/' ),
'new_tab' => true,
),
array(
'label' => 'Google Search Console',
'url' => 'https://search.google.com/search-console',
'new_tab' => true,
),
);
echo '<ul>';
foreach ( $links as $link ) {
$target = ! empty( $link['new_tab'] ) ? ' target="_blank" rel="noopener noreferrer"' : '';
echo '<li>';
echo '<a href="' . esc_url( $link['url'] ) . '"' . $target . '>';
echo esc_html( $link['label'] );
echo '</a>';
echo '</li>';
}
echo '</ul>';
}
Definiere die Links gesammelt am Anfang des Snippets. Das erleichtert spätere Änderungen und verhindert, dass versehentlich dreimal dasselbe Beispielziel ausgegeben wird.
Adminimize als Alternative ohne eigene Snippets
Das kostenlose Plugin Adminimize kann Menüs, Untermenüs, Adminbar-Elemente, Meta-Boxen und weitere Backend-Bereiche abhängig von Benutzerrollen ausblenden. Das ist besonders hilfreich bei Kunden-Websites oder Redaktionen mit unterschiedlichen Zugriffsrechten.
Adminimize eignet sich vor allem zum Reduzieren und Ausblenden. Eigene Suchfelder, Notizen, RSS-Feeds oder individuelle Linklisten fügt es nicht hinzu. Für solche Erweiterungen bleiben eigene Snippets oder ein spezialisiertes Plugin die passendere Lösung.
Teste Änderungen an Benutzerrollen mit einem separaten Testkonto. Blende keine Funktionen aus, die ein Redakteur für seine tatsächlichen Aufgaben benötigt.
Sicherheit und Wartung der Dashboard-Snippets
- Ein Snippet pro Funktion: So kannst Du problematische Anpassungen einzeln deaktivieren.
- Berechtigungen prüfen: Administrative Links und Funktionen sollten nur den vorgesehenen Benutzerrollen angezeigt werden.
- Formulare absichern: Verwende Nonces, bereinige Eingaben und prüfe den angemeldeten Benutzer.
- Eindeutige Präfixe verwenden: Eigene Funktionen, IDs und User-Meta-Schlüssel sollten ein individuelles Präfix wie
dwf_erhalten. - Nach Updates testen: Plugin-Widget-IDs oder Adminoberflächen können sich ändern.
- Unnötige Snippets entfernen: Deaktiviere Code, den Du nicht mehr nutzt, statt ihn dauerhaft unkontrolliert mitzuladen.
Fazit: Ein aufgeräumtes WordPress-Dashboard spart Zeit
Beginne mit „Ansicht anpassen“, wenn Du lediglich einige Widgets für Dein eigenes Benutzerkonto ausblenden möchtest. Nutze Code erst dann, wenn Einstellungen dauerhaft für mehrere Nutzer gelten oder eigene Funktionen hinzukommen sollen.
Mit getrennten Snippets für Dashboard-Widgets, Adminbar-Links, RSS, Notizen und Linklisten bleibt die Anpassung übersichtlich. Achte besonders bei Formularen und administrativen Links auf Nonces, Berechtigungen und bereinigte Eingaben.
Häufige Fragen zum WordPress-Dashboard
Kann ich WordPress-Dashboard-Widgets ohne Code ausblenden?
Ja. Öffne im Dashboard oben rechts „Ansicht anpassen“ und entferne die Häkchen bei nicht benötigten Widgets. Diese Einstellung gilt nur für Dein eigenes Benutzerkonto.
Wie entferne ich ein Dashboard-Widget dauerhaft?
Nutze den Hook wp_dashboard_setup zusammen mit remove_meta_box(). Dadurch kannst Du ein Widget für alle Benutzer oder gezielt für bestimmte Benutzerrollen entfernen.
Muss ich dafür die functions.php bearbeiten?
Nein. Sicherer und übersichtlicher ist ein eigenes kleines Plugin oder ein Plugin wie Code Snippets. Dort kannst Du jedes Snippet getrennt aktivieren, testen und bei Problemen wieder deaktivieren.
Wie werden eigene Dashboard-Notizen sicher gespeichert?
Speichere Notizen benutzerbezogen in den User-Metadaten. Formulare zum Speichern oder Löschen sollten eine Nonce-Prüfung enthalten und nur für angemeldete Benutzer verarbeitet werden.
Kann ich eigene Links zur WordPress-Adminbar hinzufügen?
Ja. Über den Hook admin_bar_menu und WP_Admin_Bar::add_node() kannst Du beispielsweise die Search Console, interne Arbeitsseiten oder andere häufig genutzte Werkzeuge verlinken.
Wann ist Adminimize statt eigener Snippets sinnvoll?
Adminimize eignet sich, wenn Du Menüs, Adminbar-Elemente oder Eingabefelder abhängig von Benutzerrollen ausblenden möchtest, ohne eigenen Code zu schreiben. Für neue Dashboard-Funktionen brauchst Du weiterhin ein Snippet oder Plugin.
Transparenzhinweis: Dieser Artikel wurde mithilfe künstlicher Intelligenz strukturiert und formuliert. Ich habe den Inhalt anschließend fachlich geprüft, überarbeitet und trage die redaktionelle Verantwortung.

