WordPress-Problem: Kommentar-Moderation bei einzelnen Artikeln

von Stefan Evertz am 28.08.06 um 22:20 Uhr |

Ja, ich bin ein Optimist. Und deshalb habe ich einige Tage gehofft, dass auch künftig nicht plötzlich alle neuen Kommentare zu einem einzelnen Beitrag moderiert werden müssen, nur weil die Löschung eines problematischer Kommentars durch Dritte erreicht wurde. Andererseits scheint sich genau dies abzuzeichnen (siehe auch „Heise-Urteil: Forenhaftung weiter offen? (Update)„).

Und vor diesem Hintergrund habe ich mich auf die Suche gemacht, um eine solche Funktion bei WordPress – oder aber ein geeignetes WordPress-Plugin – zu finden. Gefunden habe ich: Eigentlich nichts 🙁

  • In den Optionen von WordPress kann man die Moderation nur „blogweit“ an- oder abschalten (Unter „Optionen / Diskussion“: „Bevor ein Kommentar erscheint, muss er von einem Administrator genehmigt werden“). Für den einzelnen Artikel ist dies per Backend nicht möglich.
  • Das einzige halbwegs passende Plugin „Auto Moderate Comments“ (frenchfragfactory.net/ozh) beherrscht lediglich die zeitgesteuerte Zwangsmoderation, d.h. wenn ein Beitrag älter als X Tage ist (oder aber der letzte Kommentar älter als X Tage) ist, werden eingehende Kommentare automatisch in die Moderationsschleife geschickt. Das löst das Problem also auch nicht. (Plugin entdeckt via sw-guide.de, www.curious-creatures.de)
  • Auch die Datenbank-Struktur von WordPress gibt m.E. wenig Anlass zur Hoffnung. In der „wp_posts“-Tabelle gibt es zwar ein Feld „comment_status“, das aber nur die Optionen ‚open‘, ‚closed‘ oder ‚registered_only‘ kennt. Und Veränderungen an der Datenbank mag ich nicht besonders – und wären auch nur ein erster Schritt zur Lösung.

Meines Erachtens gibt es also für die absehbar erforderliche „Einzel-Moderation“ von Kommentaren zu einem Artikel keine „automatisierte“ Möglichkeit. Und nonstop 24 Stunden am Rechner sitzen und auf den nächsten Kommentar zu warten ist auch nicht die Lösung, die mir vorschwebt.

Bevor ich nun also weitergrüble und mir wohl ein Plugin aus den Fingern saugen muß 😕 , hier die Frage an die werten Leser:

Kennt Ihr vielleicht ein Plugin für dieses Problem? Oder habt Ihr einen Lösungsansatz griffbereit?

Falls ja, bitte ich um rege Nutzung der Kommentarfunktion!

13 Gedanken zu „WordPress-Problem: Kommentar-Moderation bei einzelnen Artikeln

  1. Michael

    Plugin ist mir keines bekannt, aber warum sollte man denn bei einzelnen Artikeln die Kommentar-Moderation aktivieren wollen? Wo ist denn da die Schwelle bzw. warum soll man da nicht gleich die Kommentare artikelbezogen abstellen, wenn kritische, unerwünschte Kommentare kommen könnten nach längerer Zeit? Hast Du vielleicht ein-zwei paar Beispiele parat?

  2. Stefan Evertz Beitragsautor

    Eins vorweg: Bei mir im Blog gibt es bisher kein solches Problem, aber im Zusammenhang mit dem Heise-Urteil ist ja mindestens eine Bloggerin (www.bloggitt.de, siehe auch „Heise-Urteil: Erste Nutzniesser der vermuteten Forenhaftung (Update)„) wegen einzelner Kommentare abgemahnt worden.

    In meinen (nicht-juristischen) Augen würde der Moderationsbedarf (im Sinne der OLG-Entscheidung) auftreten, wenn erstmals eine „berechtigte“ Aufforderung zur Löschung eines Kommentars eingegangen ist.

    Kommentare (für einen Artikel) ganz schließen wäre zwar auch eine (letzte) Möglichkeit, aber im Sinne des Erfinders scheint mir das nicht zu sein…

  3. Stefan Evertz Beitragsautor

    @Mathias: Track- oder Pingback? Einen (als Spam deklarierten) Trackback hätte ich im Backend gesehen; Pingbacks haken hier im Moment…

    Auf jeden Fall schon mal ein schnelles „Danke schön“ von hier aus!

    Werde mir das Plugin so bald wie möglich genauer ansehen; auf den ersten Blick sieht es aber schon mal sehr vielversprechend aus. Die Umsetzung über wp_postmeta scheint in der Tat der einzige Weg zur Lösung des Problems zu sein.

    Für das Spam-Karma-Problem kann ich möglicherweise einen Lösungsansatz beisteuern. Wie Andreas Skowronek unter http://forum.wordpress.de/showthread.php?t=4694 beschreibt, müsste es reichen, den Anubis-Wert hochzusetzen (auf „+45“). Inwieweit dies dann alle Kommentare (auch die nicht zu moderierenden) in die Moderationsschleife schickt, habe ich allerdings noch nicht testen können. Möglicherweise muss man da noch etwas mit dem Wert spielen…

  4. Pingback: Mathias Bank

  5. Mathias Bank

    Ah, jetzt hat der Trackback funktioniert. Dein Hinweis hat funkioniert, nun funktioniert es auch einwandfrei. Jedoch ist +45 etwas hart, bei mir hat jetzt im Test auch +2 ausgereicht. Das muss man aber sicher mit der Zeit anpassen, da sich die Bewertung im Laufe der Zeit ja anpasst.

  6. Ralf

    Nö, die DB von WP bietet für Kommentare auch den Status approved an. Das Tabellen-Feld nennt sich comment_approved und findet sich in wp_comments (wo sonst 😉 )

    Steht comment_approved auf 1, ist der Kommentar frei gegeben. Ist er hingegen auf 0, muss er moderiert werden.

    Also im Admin-Bereich eine Checkbox die beim Speichern des Beitrags in den post_metadata einen Eintrag schreibt (z.B. post_moderatetd = true/false). Dann noch einen Filter add_action(‚comment_post‘,’CheckModeration‘).
    Die Funktion CheckModeration wird beim Absenden eines Kommentars aufgerufen. Dabei wird anhand der Post-ID in den Post-Metadatas nachgeschaut ob Kommentare zum Beitrag moderiert werden sollen. Wenn ja, wird der Status des Kommentars (comment_approved) auf 0 gesetzt. Somit hängt der Kommentar in der Moderationsschleife.

    Das Plugin muss natürlich NACH SK2 (und allen anderen Spam-Plugins) aufgerufen werden. Wird es VOR SK2 aufgerufen, setzt SK2 den Kommentar ggf. wieder auf Nicht moderiert (comment_approved=1).
    SK2 hat keine Priorität angegeben, wird also immer als letztes aufgerufen. Demnach muss man SK2 zu Leibe rücken und ihm eine Priorität von 9 geben, seinem eigenen Plugin eine von 10.

  7. Ralf

    Gna … erst lesen, dann posten. Mathias hat das ja schon ungefähr so umgesetzt.
    Nur frage ich mich warum er die DB so umständlich durchforstet (bei CJC_moderateComment). Anstatt die DB abzufragen, würde ein get_post_meta(id, ‚CJCState‘, true) ausreichen.

    Das Problem mit SK2 hatte ich ja in meinen vorherigen Kommentar erläutert.

  8. Mathias Bank

    @Ralf: ursprünglich hatte ich es mit get_post_meta gemacht, leider hat mir die Funktion aber immer NULL zurückgeliefert. Nachdem ich etwa ne Stunde nach dem Grund gesucht habe, wars mir zu blöd, und ich hab die Datenbank eben selber durchsucht.

    Das Problem an Spam Karma ist, dass es bei der Captcha-Funktion nach den Plugins ausgeführt wird. Um das Problem richtig sauber zu lösen, müsste man wohl ein Plugin für Spam Karma schreiben.

  9. Ralf

    @Mathias:
    Wahrscheinlich weil du die Post-ID nicht ausgelesen hast.
    $ pid = $ _POST[‚comment_post_ID‘];
    $ state = get_post_meta($ pid,’CJCState‘,true);

    Damit kannst du dir eine Funktion und die DB-Abfrage sparen.

    Dann könnte man anstatt der Meta-Daten den comment_status verwenden. Im Backend kann man nur generell Kommentare ein- oder ausschalten. Das Tabellenfeld wp_post/comment_status bietet aber noch die Einstellung ‚registered_only‘.
    Da man im Backend nirgendwo einstellen kann das nur regestrierte Benutzer kommentieren können (warum auch immer), gehe ich mal davon aus das dieser Status von WP nicht ausgewertet wird.
    Ich würde eher dieses Feld verwenden. Der Grund ist einfach: verwendet jemand die WP-Funktion the_meta() um die Benutzerdefinierten Felder anzuzeigen, dann wird auch der Status mit angezeigt. Wäre nicht wirklich schön.

    Ich kämpfe übrigens grade mit dem gleichen Problem.

  10. Ralf

    Nachtrag: Vergiss das mit registered_only. Ansonsten kann man keine Kommentare abgeben. Wenn denn, müsste man ein neues Tabellen-Feld anlegen.

Kommentare sind geschlossen.