Hinweis: Dies ist mein privater Blog.
Für Software-Entwicklung und Refactoring siehe weigandtlabs.de.

WordPress Workaround: Kommentar-Funktion verbessern und Identitäts-Diebstahl vermeiden

Wer mit WordPress eine kleine Community aufbauen möchte, stößt meist schnell an die Grenzen der Einstell-Möglichkeiten. Wenn man beispielsweise eine kleine Community für Freunde aufbauen möchte, vertraut man seinen Mitgliedern, so dass diese alle Beiträge ohne vorherige Prüfung kommentieren können. Soweit ist das kein Problem: Man stellt einfach ein, dass man zum Kommentieren eingeloggt und angemeldet sein muss.

Wenn man jetzt aber zusätzlich noch Beiträge von Gästen erlauben will, kann man diese Einstellung nicht verwenden. Stattdessen stellt man ein, dass jeder Autor bereits einen freigeschalteten Kommentar geschrieben haben muss, bevor dieser automatisch freigegeben wird.

Diese Einstellung hat aber auch seine Nachteile: Frisch registrierte Freunde müssen erst warten, bis ihr erster Kommentar freigeschaltet wird. Außerdem kann man ein Problem mit „Identitäts-Diebstahl“ bekommen. Wenn ein Besucher die Email-Adresse eines Kommentar-Autors kennt (zB. kann man den Autor an einem Avatar bei Gravatar.com wiedererkennen) kann man er in dessen Namen einen Kommentar abgeben, der auch direkt freigeschaltet wird und von jedem gelesen werden kann.

Um dieses Problem zu lösen, ist man mit den WordPress eigenen Einstellungen am Ende. Deshalb habe ich einen kleinen Workaround mit einer kleinen Funktion entwickelt, die alle beschriebenen Anforderungen erfüllt und trotzdem die maximal mögliche Flexibilität und Sicherheit gewährleistet.

Ich habe dazu in WordPress folgende Einstellungen bei „Diskussion“ getroffen:

  • Benutzer müssen zum Kommentieren Name und E-Mail-Adresse hinterlassen
  • Benutzer müssen zum Kommentieren nicht registriert und angemeldet sein
  • Vor dem Erscheinen muss jeder Kommentar von einem Administrator überprüft werden
  • Der Autor muss keinen bereits genehmigten Kommentar geschrieben haben.

Die weiteren Einstellungen sind für den Workaround unerheblich.

Jetzt schreibt man noch folgende Funktion in die functions.php seines Themes:

add_action('comment_post', 'wl_allow_user_comments');
function wl_allow_user_comments($comment_id)
{
    if(!is_user_logged_in())
        return;

    $comment = get_comment($comment_id, ARRAY_A);
    if($comment['comment_approved'] == "0")
    {
        wp_set_comment_status($comment_id, '1');
    }
}
Wer will, kann sich den Code auch in ein eigenes Plugin schreiben. Vielleicht werde ich das später mal machen, mal sehen.

Diese Funktion wird dann automatisch aufgerufen, wenn jemand einen Kommentar geschrieben hat. Ist der Autor ein registrierter Benutzer, wird der Kommentar sofort freigeschaltet.

Dadurch wird man auch durch den oben beschriebenen Identitäts-Diebstahl geschützt, da ein Kommentar von einem Besucher erst freigeschaltet werden muss.

Ich hoffe, dass euch dieser kleine Workaround helfen konnte. Wenn ihr Anmerkungen oder Fragen habt, würde ich mich über einen Kommentar freuen.


Beitrag veröffentlicht

in

von

Schlagwörter:

Kommentare

3 Antworten zu „WordPress Workaround: Kommentar-Funktion verbessern und Identitäts-Diebstahl vermeiden“

  1. Avatar von Christian
    Christian

    ich benutzte das twenty ten (3.0.4) , leider funzt bei mir deine Lösung nicht. Gibt es eine besondere Stelle an die ich deinen Code einfügen muss ?

    1. Avatar von Artur

      Hallo Christian, danke für dein Interesse an meinem Workaround.

      Was genau funktioniert nicht? Werden Kommentare von nicht registrierten Besuchern sofort freigeschaltet oder die Kommentare von angemeldeten Usern nicht freigeschaltet?

      Ich habe den Code mit dem Twentyten Theme erfolgreich getestet. Dazu habe ich den Code in der functions.php ganz unten hinein kopiert.