Eigene Kommentare in WordPress hervorheben

Wie ich finde, ist das Hervorheben eigener Kommentare eine sehr sinnvolle Funktion, da Besucher somit direkt sehen können, wenn der Autor eines Beitrages diesem etwas Ergänzendes zuzufügen hatte, oder Fragen in den Kommentaren beantwortet hat.

Dies lässt sich natürlich über ein Plugin regeln, allerdings highlighted das einzige mir sinnvoll erscheinende Plugin nur den Text eines Kommentars und nicht die ergänzenden Informationen um den Kommentar herum (Datum, Autor, Homepage, etc.). Da es sich letztendlich um eine Design-Aufgabe handelt, macht es in der Regel mehr Sinn, eine solche Funktion fest im Theme zu verankern.

Innerhalb von Themes wird die Darstellung von Kommentaren in der Regel in der Datei comments.php geregelt. Dort werden normalerweise in einer foreach-Schleife 0:n Kommentare dargestellt. Ich drücke mich hier übrigens gerade mit Absicht etwas schwammig aus, da natürlich jedes Theme Kommentare anders darstellt. Normalerweise sollte die foreach-Schleife wie folgt aufgebaut sein:

foreach ($comments as $comment) {
}

Innerhalb dieser Schleife wird jeweils ein Kommentar dargestellt. Um die eigenen Kommentare nun hervorzuheben, müssen wir lediglich herausfinden, wer den gerade aktuellen Kommentar geschrieben hat. Am einfachsten geht dies über die folgende Abfrage innerhalb der Foreach-Schleife:

 if (1 == $comment->user_id) {
     // Abweichendes Design hier
}

Wenn also die ID des Users, der den Kommentar geschrieben hat gleich 1 ist (Administrator, der erste im System angelegte Account), dann weiche von der Darstellung ab. Das System ist ganz nett, allerdings besitzt es auch seine Schwächen. Wir wollen ja nicht die Kommentare des Administrators highlighten, sondern die des Autors eines Beitrages. Aus diesem Grund wäre es geschickter die Variable

$comment->comment_author_email

abzufragen. Dazu müsste man sinnvollerweise wissen, wie die E-Mail-Adresse des Autors ist, und genau diese Information enthält uns – je nach Aufbau des Themes – WordPress vor.  Hat man nur einen Schreiberling in seinem Blog kann man diese Information natürlich hart codieren, aber spätestens bei Gast-Autoren fangen die Probleme an.

Grund für das Nichtfunktionieren dieser Abfrage ist es, das auch die Beiträge innerhalb einer Schleife ausgegeben werden.  Dies gilt auch dann, wenn es sich nur um einen einzigen Beitrag handelt (z. B. single.php).  Informationen über den Autor eines Beitrages kann ich nur innerhalb dieser Schleife erhalten, außerhalb der Schleife ist er ein vollkommen Unbekannter. Dummerweise haben Theme-Autoren (oder solche, die es werden wollten) teilweise die dumme Angewohnheit die Kommentare außerhalb dieser Schleife einzubinden. Über Sinn und Zweck dieser Aktion kann man jetzt zwar vortrefflich diskutieren, aber das Resultat bleibt gleich. Es ist (einfach!) nicht möglich die entsprechenden Funktionen abzufragen.

In diesem Falle bleibt nur der Umbau des Themes bzw. das Hartcodieren von zum Beispiel der E-Mail-Adresse, hier muss jeder für sich selbst klären, ob der Aufwand in Relation zum Nutzen steht. Ist die comments.php innerhalb von the_loop eingebunden, kann man folgenden Befehl verwenden, um die E-Mail-Adresse des Autors abzufragen:

// Vor Version 2.8
echo get_the_author_email();
// Ab Version 2.8
echo the_auhor_meta('user_email');

Eine sinnvolle Abfrage sähe demnach wie folgt aus:

if ($comment->comment_author_email == the_author_meta('user_email')) {
     echo "style='background-color: yellow;'";
}

Einfach mal ausprobieren, aber wie gesagt: kann funktionieren, muss aber nicht :)

Ähnliche Beiträge

Affiliate Links, Advertorials und No-Follow Immer mehr Blogs monetarisieren diesen durch Affiliate Links, Werbung oder Advertorials. Scheinbar verhält es sich aber so, dass Google zumindest Adve...
Wordfence Security Plugin für WordPress Nach ein paar Checks des Blogs mittels des P3 Profilers ist schnell klar geworden, das der Blog zum einen zu viele und zum anderen alte Plugins verwen...
WordPress mit Download-Codes Ich bin heute über ein interessantes WordPress-Plugin gestolpert, das es erlaubt, Downloads mit einem Code zu versehen! Was bedeutet dies im Einzelnen...
WordPress mit Lucene Es gibt Dinge, die sind in PHP gut umzusetzen, andere Dinge funktionieren besser mit Java. In letzter Zeit hat sich herauskristallisiert, dass viele g...

4 Kommentare

  • […] Falls das im eigenen Theme nicht funktioniert, kann evtl. dieser Beitrag weiterhelfen. Tags: theme, WordPress Kommentar schreiben Kommentare (0) Trackbacks (0) ( […]

  • […] Eigene Kommentare in WordPress hervorheben – Kommentare, Schleife, Kommentar, Abfrage, Themes, E-Mai… […]

  • t3n-Linktipps: Twitter-Suche bei Xing, Eclipse „Galileo“, Netzsperren-Interview, Grimme Online Award, Filesharing mit FriendFeed » t3n Magazin sagt:

    […] Ein Blog lebt erst so richtig, wenn sich die Leser aktiv beteiligen, in dem sie die Beiträge kommentieren und mit dem Autor diskutieren. Je häufiger es dabei hin und her geht, umso schneller geht der Überblick verloren. Guido Mühlwitz erklärt uns, wie man den Überblick durch das Hervorheben der eigenen Kommentare ve…. […]

Schreibe einen Kommentar