WordPress Beiträge: Abonnenten als Autor eintragen

Heute musste ich einen WordPress Benutzer als Autor eines Beitrags (Post) einzutragen. Soweit kein Problem. Allerdings hatte besagter Benutzer die Rolle eines Abonnenten. Entgegen aller Erwartungen war die Lösung mal wieder ein Fünfzeiler in PHP.

WordPress Benutzerrollen für Einsteiger

Solltest du wenig Erfahrung mit den unterschiedlichen Rollen und Rechten der Benutzer haben, hier eine kurze Zusammenfassung der Herausforderung:

  1. Abonnenten können keine Beiträge schreiben. Deshalb stehen sie während der Bearbeitung eines Beitrags auch nicht als Autor zur Auswahl.
  2. Besagter Benutzer durfte keine Rolle mit mehr Rechten erhalten. Ihn zum Autor oder Redakteur zu machen, wäre also keine akzeptable Lösung.
  3. Weise ich dem Beitrag über PHP einen Abonnenten als Autor zu, wird dieser bei der nächsten Aktualisierung des Beitrags über das WordPress Backend durch den speichernden Benutzer ersetzt.

Alle Benutzer für die Autorenliste freischalten

Mit diesem Snippet kannst du alle Benutzer, unabhängig von ihrer Rolle, als Autor eines Beitrags eintragen. Die Rechte der Benutzerrollen werden dadurch nicht verändert.

function add_subscribers_to_dropdown( $query_args, $r ) {
    unset($query_args['who']);

    return $query_args;
}
add_filter( 'wp_dropdown_users_args', 'add_subscribers_to_dropdown', 10, 2 );

Die Umsetzung ging schneller als gedacht, denn auf der WordPress Codex Seite zum wp_dropdown_users_args Hook waren bereits einige Lösungen aufgeführt.

Und so funktioniert es

Im Feld „who“ wird die Rolle „author“ als Standardwert an die Auswahlliste übergeben. Ist dieses Feld nicht gesetzt, kannst du jeden Benutzer als Autor eines Beitrags hinterlegen.

Füge dieses Snippet in die functions.php – oder noch besser, in ein Plugin ein. Backend Funktionen werden nach Möglichkeit unabhängig vom Theme verwaltet.

Teile diesen Beitrag