Einen zweiten Autor für einen WordPress-Post festlegen - Guru 2.0
Einen zweiten Autor für einen WordPress-Post festlegen

Einen zweiten Autor für einen WordPress-Post festlegen

Post mit zwei Autoren

Post mit zwei Autoren

Wer einen aufwendigeren Blog mit mehreren Autoren betreibt hat vielleicht schon mal die Anforderung gehabt: An einem Post arbeiten zwei Autoren und beide sollen angeführt werden. Oder ein Autor schreibt den Beitrag in WordPress und ein anderer überarbeitet diesen Post und dann sollen auch beide Namen angezeigt werden.
Die einfachste Lösung ist natürlich ein benutzerdefiniertes Feld und einfach den eigenen Namen reinschreiben. Aber wie ist das so mit den Anwendern: Erstens ist so was fehleranfällig, zweitens wird es gern vergessen und drittens klappen diese vielen Klicks so gut wie nie. Es muss als eine komfortable Lösung her.

Meta-Box zum Erweitern des Dashboards

Meta-Box für einen zweiten Autor im DashBoard von WordPress

Meta-Box für einen zweiten Autor im DashBoard von WordPress

Und da wäre am Besten eine zweite Meta-Box beim Modul Beitrag bearbeiten, welche die Liste der vorhandenen Benutzer (möglichen Autoren) anzeigt. Genau das werden wir jetzt erstellen, denn da klicken die Anwender auch hin und wir können im Theme eine saubere Lösung für das FrontEnd erstellen, denn die Autorennamen sind immer gleich geschrieben. Wie das mit den Meta-Boxen und benutzerdefinierten Feldern geht, habe ich ja schon vor kurzem beschrieben. Aber dieses Mal ist es halt kein einfaches Eingabefeld, sondern eine Auswahlliste.

Ach ja und das mit dem direkten Ändern von Themes hätten wir auch schon besprochen. Der Guru 2.0 hat schon mal beschrieben wie man ein Child-Theme in WordPress anlegt und dort alle Erweiterungen für ein bestehendes Theme ergänzt.

Die Meta-Box erstellen und die Autorenliste anzeigen

Dann legen wir jetzt los. Zu Beginn brauchen wir wie so oft die Datei functions.php, um das WordPress-Theme mit unseren Ideen zu erweitern. Den gesamten Quellcode können wir elegant am Ende der Datei anhängen. Am Anfang steht die Funktion add_meta_box() um eine leeres Element in das Dashboard einzufügen.

Danach kommt auch schon die CallBack-Funktion um die Meta-Box mit der Auswahlliste der Autoren zu befüllen. Zuerst laden wir alle benutzerdefinierten Felder mit der Funktion get_post_custom(). Dann prüfen wir ob das Custom Field mit dem Namen author2 schon einen Wert enthält. ist dies der Fall speichern wir diesen in der Variablen $text. Falls nicht legen wir die ID des aktiven Benutzers in der Variablen ab.
Ein wenig Sicherheit muss sein. Darum erzeugen wir mit wp_nonce_field() ein verstecktes Feld mit einem von WordPress erzeugten, zufälligen Inhalt. Dieses können wir beim Speichern dann abfragen und überprüfen ob jemand unser Skript missbraucht.

Nun müssen wir die aktiven Autoren des Blogs ermitteln. Dazu erzeugen wir eine neue Klasse mit WP_User_Search() der wir als Parameter die Einschränkung auf author mitgeben. Danach können wir mit alle Autoren mit Komma getrennt in der Variablen $authors ablegen. Nachdem wir den aktiven Autor festgelegt haben, können wir mit der Funktion wp_dropdown_users() eine Auswahlliste der Benutzer erzeugen.

Den 2. Autor des Posts speichern

Nun müssen wir noch die Auswahl unseres Anwenders speichern. Am Anfang prüfen wir ein paar Dinge um zu erfahren, ob überhaupt gespeichert werden kann und darf. Ganz am Ende der Funktion prüfen wir, ob ein Wert für das Custom Field eingegeben wurde und speichern den zweiten Autor mit der Funktion update_post_meta().

einen zweiten Post-Autor im FrontEnd ausgeben

Eigentlich wäre der Beitrag jetzt zu Ende. Aber was hilft die ganze Programmiererei mit Meta-Boxen, Feldern und Usern, wenn wir diese dann nicht verwenden. Darum zeige ich dir hier noch einen Code-Schnippsel, den du an passender Stelle in dein Theme einfügen kannst. Wo genau hängt von deinem Theme ab, aber es ist sicher im Loop. Wahrscheinlich ist es die Datei content.php.

Zuerst stellen wir die Daten des Hauptautors zusammen. Wir speichern die ID des Autors und stellen mit get_the_author_meta() den echten Namen (nicht den Nice-Name oder Nickname) zusammen.
Nun hohlen wir uns mit get_post_meta($actID, 'author2', true).''; die ID eines zweiten Autors aus den benutzerdefinierten Feldern des aktiven Posts. Nun prüfen wir ob ein zweiter Autor gespeichert wurde. Wenn dies wirklich der Fall ist, ermitteln wir dessen Daten und speichern diese in der Variablen $author2. Am Ende haben wir dann zwei Werte $author mit dem ersten oder einzigen Autor und $author2 welche entweder einen schließenden p-Tag oder einen zweiten Autorennamen enthält.
Am Ende können wir diesen beiden Variablen mit einem einfachen echo ausgeben.

Damit ist der Guru 2.0 wieder am Ende eines Posts angelangt. Ich hoffe ich konnte dir wieder einen Schritt weiterhelfen. Falls du Fragen hast, du weißt, da unterhalb ist ein Formular. Fülle die paar Felder aus und ich werde dir gerne helfen. Aber auch Kritik, Anregung und auch manchmal ein kleines Lob freuen mich.

Blogheim.at Logo
Diese Website verwendet Cookies - nähere Informationen dazu finden Sie in unserer „Datenschutzerklärung“. Klicken Sie auf „Ich stimme zu“, um Cookies zu akzeptieren und unsere Webseite zu besuchen, oder klicken Sie auf „Cookie-Einstellungen“, um Ihre Cookies selbst zu verwalten.