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

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-Optimierung für Doofe – oder auch: selbs... Höllenbrut und Satans Asche, der Doofe war in diesem Fall wohl ich! :) nachdem ich euch seit geraumer Zeit mit Optimierungs-Vorschläge belagere und di...
Unsichtbares reCaptcha für WordPress Ich für meinen Teil verwende schon seit Ewigkeiten kein Captcha mehr, zum einen weil ich es affig finde, zum anderen weil ich durchaus Probleme hatte ...
Syntax Highlighting in Javascript Syntax Highlighting ist – als Blogbetreiber – eine recht anstrengende Sache. Zunächst einmal muss man WordPress erklären, dass es bitte schön die Fing...

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