Viele WordPress-Benutzer möchten bei den Kommentaren zu einem Post gerne ihre eigenen Antworten optisch hervorheben, damit man gleich auf den ersten Blick sieht, welche Kommentare vom Seitenbetreiber stammen und welche nur von ganz normalen Besuchern. So auch ich.
Eine Google-Suche ergab, daß hierzu meistens empfohlen wird, die User-ID des Kommentators einfach mit seiner eigenen abzugleichen, und wenn sie gleich sind, dann wird dem Kommentar eben eine zweite, besondere CSS-Klasse zugewiesen. Das sähe dann also etwa so aus:
Mir gefällt das so nicht. Was ist, wenn eine Seite mehrere Schreiber hat und man gerne die Kommentare aller Mitwirkenden hervorheben möchte? Soll das dann etwa so aussehen?
Ich glaube, da sind wir uns alle einig, daß das nicht so schön ist. ;) Außerdem müßte man dann jedesmal, wenn man ein neues Mitglied in seine „Redaktion“ aufnimmt, wieder im Template rumfummeln, um dessen User-ID dort einzutragen.
Nein, nein, so macht man das nicht. Viel besser wäre es doch, wenn man einfach das User-Level des Kommentators prüft, denn sobald dieses höher als 0 ist, weiß man, daß es sich um einen „Mitarbeiter“ der Seite handelt.
Das sieht dann so aus:
$userdata = get_userdata($comment->user_id); ?>
So bekommen alle Kommentare von „Contributors“ (Level 1), Autoren (Level 2-4), Editoren (Level 5-7) und Admins (Level 8-10) ein anderes Aussehen. Natürlich kann man anhand dieser Levels das Ganze noch verfeinern, wenn man z. B. nur Kommentare von Admins und Editoren anders darstellen will, nicht aber die von Autoren und „Contributors“.
19 Antworten zu “Admin-Kommentare in WordPress hervorheben”
Einfach mal nach Postkarten zu gucken, da hätte ich ja auch mal drauf kommen können. Schließlich gucke ich ja auch immer nach CC-Fotos, wie man in meinem Blog sehen kann. :)
Vielen Dank für den Link zu den Papierthemen. Den habe ich mir gleich mal gespeichert. Ganz unten gibt’s ein Tutorial mit einem total tollen Papier. Wenn ich Zeit habe, werde ich mir das mal zu Gemüte führen.
Wegen des qTranslate-Problems schicke ich dir dann gleich eine Mail. Wie von Zauberhand scheinen jetzt die Umlautprobleme verschwunden zu sein. Witzigerweise sind die Datumsanzeigen nicht mehr zerschossen, dafür wurden die meisten Kommentare jetzt am 1. Januar 1970 gepostet. :D
Super Artikel, danke dafür!
Eine Frage hätte ich jedoch trotzdem noch.
Wo packe in den Code von oben aus dem Artikel rein?
In die Comments.php? Wenn ja, wo dort genau?
Danke für deine Antwort.
Grüße
Jan
Das kommt immer auch ein wenig auf das Theme an. Meistens befindet sich der Code zur Kommentaranzeige in der
comments.php
, wie Du schon vermutet hast. Es gibt aber auch Themes (z. B. TwentyEleven), bei denen die Ausgabe in diefunctions.php
ausgelagert ist. Am besten suchst Du einfach mal nach dem Befehlcomment_text()
– wo der steht, solltest Du richtig sein. ;)Irgendwo vor diesem Befehl – das kann je nach Theme direkt davor oder auch 10-20 Zeilen weiter oben sein – befindet sich in der Regel ein öffnendes
li
-Tag:<li ...
In meinem Beispiel war das die Zeile
<li class="comment">
, die ich dann zuerweitert habe.
Ich hoffe, Du kannst es jetzt finden – ist etwas schwierig zu erklären. :D
Danke für deine Antwort Ginchen.
Konnte die Stelle leider nicht finden…typisch „Arras“ Theme…ist der größte Mist, wenn ich nur an die ganzen Code-Fehler denke…naja, könnte ich dir meine comments.php und die functions.php vielleicht schicken und du schaust mal rein?
Wäre sehr nett, wenn du das machen würdest :-)
Grüße
Jan
Habe mir „Arras“ gerade mal angesehen. Bei dem Theme befindet sich die Kommentar-Ausgabe in der Datei
library/template.php
. Darin findet man die Zeile:Die Funktion
comment_class()
ist einigermaßen „neu“ – als ich diesen Post 2008 schrieb, gab es sie noch nicht. Inzwischen sollte aber jedes halbwegs moderne Theme diesen Befehl nutzen.comment_class()
versieht die Kommentare ganz automatisch mit verschiedenen Klassen, darunter auchbyuser
,comment-author-[deinname]
undbypostauthor
. Das bedeutet für Dich: Du musst in den PHP-Dateien überhaupt nichts mehr ändern! Du brauchst nur noch eine (oder mehrere) dieser Klassen mit CSS zu gestalten.Die Klasse
byuser
bekommen alle Kommentare, die von irgendeinem der Admins, Editoren, Redakteure oder was auch immer geschrieben wurden.comment-author-[deinname]
sind explizit nur Deine eigenen Kommentare.bypostauthor
sind die Kommentare, die von derselben Person geschrieben wurden, die auch den Artikel verfasst hat.Soll heißen, wenn Du in dein CSS nun sowas einfügst wie
.bypostauthor { color: red; }
, dann sollte das schon in etwa den gewünschten Effekt haben. ;)Vielen Dank Ginchen, werde es gleich mal testen! :-)
Okay, funktioniert. Ist es auch möglich, den Hintergrund einzufärben? Und nicht den Text?
.bypostauthor { background-color: #CD1CC4; }
funktioniert nicht..
Ok, hab‘ mir noch mal das Arras-Theme angesehen. Da geht es natürlich wieder nicht so einfach. ;) Mach es mal so:
P.S.: Uuuuh, Augenkrebsfarbe! :D
Danke für deine Hilfe! :)
Wirklich sehr nett….
Tja, was die Farbe betrifft…mir gefällt es auch nicht soo aber ist ja 1. nicht für mich und 2. habe ich auch gleich eine andere Farbe gewählt, als ich das eben eingefügt habe, da das wirklich richtig „Augenkrebs“ war ;) :D