Jörgs Webnotizen

Fehlender Hinweis auf Freischaltung von Kommentaren

Vor kurzem ist mir beim Testen der Kommentarfunktion aufgefallen, dass ich nach dem Absenden eines Kommentars wieder auf die Beitrags-Seite weitergeleitet werde, ohne dass unterhalb der Kommentar erschien noch eine Bemerkung, warum dieser noch nicht angezeigt wird. In der Template-Datei comments.php hatte ich allerdings mit folgendem Code-Abschnitt in der foreach Schleife einen solchen Hinweis eingebaut:


<?php foreach ($comments as $comment) { ?>
    <!-- ... -->
    <?php if ($comment->comment_approved == '0') { ?>
        <p style="font-weight:bold">Achtung: Dein Kommentar muss erst noch freigegeben werden.</p>
    <?php } ?>
<?php } ?>

Dies hatte anfangs auch so funktioniert. Nach längerer Suche habe ich die Ursache für das Nicht-Mehr-Funktionieren gefunden: in den Kommentareinstellungen hatte ich irgendwann bei „Benutzer müssen zum Kommentieren Name und E-Mail-Adresse hinterlassen“ den Haken rausgenommen, so dass User auch ohne Angabe von Email und Name kommentieren konnten. WordPress speichert nach dem Absenden des Kommentars diese beide Angaben in ein Cookie. In der foreach Schleife der comments.php werden nun nicht nur alle freigeschalteten Kommentare durchlaufen, sondern zusätzlich die nicht freigeschalteten Kommentare, bei welchen die gleiche Emailadresse angegeben wurde, wie diejenige, die im Cookie gespeichert ist. Fehlt diese Angabe, ist der betreffende Kommentar nicht in dem Array $comments enthalten und kann entsprechend weder Kommentartext noch Hinweis ausgegeben werden.

Weil der fehlende Hinweis auf Freischaltung auch den falschen Eindruck hinterlassen könnte, beim Abspeichern des Kommentars ist irgendwas schiefgelaufen, habe ich die Einstellungen wieder so geändert, dass Name und Emailadresse angegeben werden müssen – zumindest voräufig, solange ich keine bessere Lösung kenne. Da in diesem Blog schon so einige Spamkommentare aufschlagen, ist der Verzicht auf Freischaltung für mich keine Option.

Tags: WordPress

Kommentare

Moin!

Vielleicht ist ja ein Honeypot was für Dich? Funzt in meinem Blog wunderbar und bin seit dem Spamfrei:
https://musicchris.de/index.php?page=blog&index=17

Jruß
chris

Ich nutze hier schon Antispam Bee als WordPress-Plugin, das beinhaltet auch ein solches Honey Pot: der Name des eigentlichen Textareas wird geändert und ein per CSS ausgeblendetes Textarea nimmt dessen Stelle ein. Die Spam-Kommentare, die in diese Falle gehen, das sind wohl über 90%, werden direkt ins Nirvana geschickt. Es kommen aber immer noch einige durch, die ich dann manuell löschen muss.