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

SiteVault – Komplettbackup für Webhosts inklusive ... Ich bin die Tage im Blog von Oliver über SiteVault gestolpert. Während die GUI des kleinen Tools wohl einem Worst Case Szenario entspricht, hat es tro...
Die XML-RPC Schnittstelle von WordPress WordPress besitzt seit dem Anbeginn aller Tage eine XML-RPC-Schnittstelle, die nicht immer den aktuellsten Sicherheits-Szenarien entsprach. Es war nie...
WordPress besser in Facebook verlinken Wer kennt das nicht, man findet einen interessanten Blog-Beitrag und und pastet die URL einfach in seinen Status bei Facebook. Dieses wiederum macht e...
Plädoyer pro WordPress Vor einigen Jahren wurde mir von einem Vertreter eines großen deutschen Verlages gesagt, dass die deutsche Presse selbst dann ein Haar in der Suppe fi...

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