
⌨️ So fügst du ein Autoren-Dropdown auf dem Alle-Beiträge-Bildschirm in WordPress hinzu
Die Standard-Filteroption „Meine" auf der Übersichtsseite „Alle Beiträge" in WordPress zeigt nur die Beiträge des aktuell angemeldeten Benutzers an. Das funktioniert, solange Sie der einzige Autor sind. Wenn jedoch drei Redakteure, fünf freie Mitarbeiter und ein paar Gastautoren an der Website arbeiten, wird die Suche nach dem Verfasser eines Beitrags zum endlosen Scrollen durch eine unübersichtliche Tabelle.
Die native Oberfläche von WordPress bietet kein Autoren-Dropdown neben den Datums- und Kategoriefiltern. Die Entwickler haben diesen Bildschirm bewusst schlank gehalten, in der Annahme, dass der Filter „Meine" für Administratoren ausreicht. In der Praxis ist das katastrophal unzureichend.
Sie können ein Autoren-Dropdown ohne Plugin hinzufügen, mit einem einzigen sauberen PHP-Snippet. Der Code hängt sich in native Admin-Hooks ein und kollidiert nicht mit anderen Filtern. Das Autoren-Dropdown funktioniert mit dem nativen „Filtern"-Button zusammen.
💡 Kurzüberblick:
- Wir registrieren den
admin_init-Hook, damit der Code nur im Admin-Bereich arbeitet und das Frontend nicht beeinträchtigt - Wir geben
wp_dropdown_users()überrestrict_manage_postsaus, sodass das Auswahlfeld in der Filterzeile neben Datum und Kategorie erscheint - Wir begrenzen den Geltungsbereich über
get_current_screen()auf Beiträge und Seiten, sodass benutzerdefinierte Beitragstypen unberührt bleiben - Der ausgewählte Autor wird über
get_query_var('author')gemerkt und funktioniert mit anderen Filtern zusammen
So funktioniert es im Hintergrund
WordPress rendert Filter auf Listenbildschirmen über den Hook restrict_manage_posts. Er wird unmittelbar vor dem „Filtern"-Button in der Beitrags- und Seitentabelle ausgelöst. Alles, was innerhalb dieses Hooks ausgegeben wird, wird Teil der Filterzeile, genau wie die systemeigenen Datums- und Kategorie-Dropdowns.
Die Funktion wp_dropdown_users() ist die native API von WordPress zur Erzeugung eines HTML-Auswahlfelds mit Benutzern. Sie akzeptiert ein Array mit Argumenten: Benutzerliste, Standardwert, CSS-Klasse, und liefert ein fertiges <select>-Element zurück. Kein manuelles Markup und keine direkten Datenbankabfragen.
Die Kombination dieser beiden Werkzeuge ergibt eine native Oberfläche, die von eingebauten WordPress-Filtern nicht zu unterscheiden ist.
Code: Das Autoren-Dropdown hinzufügen
Fügen Sie das Snippet in die functions.php des aktiven Themes ein oder über ein Code-Snippets-Plugin (zum Beispiel Code Snippets). Der Code registriert einen Hook auf das admin_init-Ereignis und gibt das Autoren-Auswahlfeld auf den Beitrags- und Seitenübersichten aus.
1 add_action('admin_init', 'tsd_author_dropdown_init'); 2 function tsd_author_dropdown_init() { 3 add_action('restrict_manage_posts', 'tsd_author_dropdown'); 4 } 5 function tsd_author_dropdown() { 6 if ($GLOBALS['pagenow'] !== 'edit.php') { 7 return; 8 } 9 $screen = get_current_screen(); 10 if (empty($screen) 11 || ($screen->id !== 'edit-page' && $screen->id !== 'edit-post') 12 ) { 13 return; 14 } 15 wp_dropdown_users(array( 16 'show_option_all' => 'All Authors', 17 'selected' => get_query_var('author', 0), 18 'name' => 'author' 19 )); 20 }
Was die einzelnen Teile bewirken:
admin_init löst die Registrierung nur im Admin-Bereich aus. Das Frontend bleibt unberührt, keine zusätzliche Last.
restrict_manage_posts gibt das Auswahlfeld in der Filterzeile aus, genau dort, wo sich die Datums- und Kategoriefilter befinden. Das Dropdown erscheint sowohl auf der Beitrags- als auch auf der Seitenübersicht.
$GLOBALS['pagenow'] prüft, ob wir uns auf der Beitragslisten-Seite (edit.php) befinden. Wenn der Benutzer zu den Einstellungen wechselt oder einen bestimmten Beitrag bearbeitet, beendet sich der Code stillschweigend.
get_current_screen() präzisiert den Inhaltstyp. Das Snippet funktioniert nur für die Standardtypen post und page und überspringt benutzerdefinierte Beitragstypen (cpt). Das ist eine bewusste Einschränkung: Die meisten CPTs von Drittanbieter-Plugins nutzen keine Autoren zur Inhaltsdifferenzierung.
wp_dropdown_users() erzeugt das HTML-Auswahlfeld. Das Argument 'show_option_all' legt den Text für die Option „Alle Autoren anzeigen" fest, 'selected' merkt sich über get_query_var('author') den ausgewählten Benutzer nach dem Filtern, und 'name' => 'author' stellt sicher, dass WordPress den Parameter als Autorenfilter erkennt und mit einer Standardabfrage verarbeitet.

Nach dem Einfügen des Codes erscheint das Dropdown auf den Übersichtsseiten „Alle Beiträge" und „Alle Seiten" neben den nativen Filtern. Der „Filtern"-Button funktioniert wie gewohnt. Sie können gleichzeitig nach Autor, Datum und Kategorie filtern, und WordPress wird die Bedingungen korrekt kombinieren.
Feinjustierung: Was Sie ändern können
Das Snippet ist bewusst minimal gehalten, aber wp_dropdown_users() unterstützt Dutzende Parameter. Sie können fast alles an Ihr Szenario anpassen.
Text „Alle Autoren" ändern. Ersetzen Sie 'show_option_all' durch Ihre eigene Variante, zum Beispiel 'Все авторы' oder 'Любой автор'.
Bestimmte Benutzer ausschließen. Der Parameter 'exclude' akzeptiert ein Array mit IDs. Nützlich, wenn es unter den Benutzern Systemkonten gibt, die nicht in der Liste erscheinen sollen:
1 'exclude' => array(1, 15, 23),
Nur bestimmte Rollen anzeigen. Der Parameter 'role__in' filtert Benutzer nach Rollen. Zum Beispiel nur Autoren und Redakteure:
1 'role__in' => array('author', 'editor'),
Sortierung nicht alphabetisch. Standardmäßig gilt 'orderby' => 'display_name'. Sie können dies durch 'ID', 'user_login' oder 'post_count' ersetzen. Die letzte Option zeigt die aktivsten Autoren oben an.
Auf andere Beitragstypen erweitern. Entfernen Sie die $screen->id-Prüfung, und das Dropdown erscheint auf allen edit.php-Bildschirmen, einschließlich benutzerdefinierter Beitragstypen. Oder fügen Sie bestimmte CPTs zur Bedingung hinzu:
1 $allowed = array('edit-post', 'edit-page', 'edit-product'); 2 if (!in_array($screen->id, $allowed, true)) { 3 return; 4 }
⁉️🤔 Häufig gestellte Fragen
Funktioniert das Snippet gleichzeitig mit Gutenberg und dem Classic Editor?
Ja. Der Code berührt den Editor nicht, er verändert nur Admin-Listen, die nicht vom gewählten Editor abhängen. Das Snippet funktioniert identisch unter Gutenberg, Classic Editor und jedem Page Builder. Getestet auf WordPress 6.4-6.7 mit aktiviertem und ohne Gutenberg. Der Hook
restrict_manage_postsexistiert seit Version 2.1 und hat sich kompatibilitätstechnisch nicht verändert. Der Code funktioniert auf jeder modernen WordPress-Version.
Muss ich den Cache nach dem Einfügen des Codes leeren?
Nein. WordPress-Hooks werden bei jeder Anfrage an das Admin-Panel dynamisch registriert. Aktualisieren Sie einfach die Beitragslisten-Seite. Wenn Sie serverseitiges Caching (Redis, Varnish) einsetzen, hat das keine Auswirkung auf das Admin-Panel, das standardmäßig vom Caching ausgeschlossen ist.
Kann ich das Autoren-Dropdown ohne Zugriff auf die functions.php hinzufügen?
Ja, über ein Code-Snippets-Plugin. Die kostenlosen Plugins Code Snippets, WPCode oder FluentSnippets funktionieren dafür. Fügen Sie den Code als PHP-Snippet mit automatischem Start ein, und es funktioniert genauso wie in der
functions.php. Der Vorteil eines Snippet-Managers: Ein Codefehler legt nicht die gesamte Website lahm. Das Plugin fängt den fatalen Fehler ab und deaktiviert das Snippet.
Warum erscheint das Dropdown nicht auf der Übersichtsseite eines benutzerdefinierten Beitragstyps?
Das Snippet ist bewusst auf die Bildschirme
edit-postundedit-pagebeschränkt. Um einen CPT hinzuzufügen, erweitern Sie die Bedingung in der$screen->id-Prüfung (siehe Abschnitt „Feinjustierung"). Hinweis: Bei CPTs, die ohne Autorenunterstützung registriert wurden ('supports' => array('author')), funktioniert die Autorenfilterung auch mit vorhandenem Dropdown nicht.
Kollidiert das Snippet mit Plugins wie Admin Columns oder Adminimize?
Nein. Diese Plugins arbeiten mit anderen Hooks und verändern Tabellenspalten, nicht die Filterzeile.
restrict_manage_postsfügt das Auswahlfeld vor dem „Filtern"-Button ein, in einem Bereich, den Spalten-Plugins nicht berühren. In drei Jahren Einsatz auf Websites mit mehreren Autoren wurden keine Konflikte verzeichnet.
Lohnt es sich, das Autoren-Dropdown auf Ihrer Website einzubauen
Wenn mehr als zwei Personen auf der Website veröffentlichen, definitiv ja. Der Filter „Meine" zeigt die Beiträge des aktuellen Benutzers, erlaubt aber nicht, zu den Artikeln eines Kollegen zu wechseln. Das Autoren-Dropdown schließt diese Lücke ohne Plugins und ohne Datenbanklast. wp_dropdown_users() macht eine Abfrage über get_users(), die WordPress zwischenspeichert.
Für einen Solo-Blog ergibt der Filter keinen Sinn. Sie sind ohnehin der einzige Autor. Sobald jedoch eine zweite Person hinzukommt, macht die durch die sofortige Filterung eingesparte Zeit die drei Minuten für das Einfügen des Codes mehr als wett.
Kopieren Sie das Snippet in die functions.php oder über Code Snippets, aktualisieren Sie die Beitragslisten-Seite und testen Sie die Autorenfilterung in Kombination mit dem Datumsfilter. Wenn Sie eine Anpassung an Ihre Rollenstruktur und Beitragstypen benötigen, geben Ihnen die Parameter role__in, exclude und orderby die volle Kontrolle über den Listeninhalt, ohne zusätzliche Plugins.



