toscho.design

WordPress: Moderationsfalle offenlegen

WordPress hat ein ebenso nützliches wie tückisches Feature: Man kann einstellen, wieviele Links ein Kommentar enthalten darf. Überschreitet ein Kommentar diese Zahl, wird er in die Moderation gestellt.
Das ist nützlich, denn Spammer versuchen gerne, ein Blog mit vielen Links auf ihre Seiten zu vergolden verseuchen.

Screenshot

Tückisch daran ist, daß es den Schreiber oft überrascht, denn er weiß ja nichts von dieser Grenze. Die meisten fertigen WordPress-Themes – auch das Standardtheme – verschweigen sie.

So geht es besser:

<?php
if ( 0 != (int) get_option('comment_max_links') )
{
?>
<p>Ab <?php echo get_option('comment_max_links'); ?>
 Links wird der Kommentar erst manuell geprüft 
und dann veröffentlicht.</p>
<?php
}
?>

Diesen Code habe ich in die comments.php meines Themes eingebaut, direkt unter die textarea.

Man beachte das Leerzeichen vor dem Wort »Links«: PHP schluckt den Umbruch; die Leerstelle verhindert also, daß die Zahl am nächsten Wort klebt.

Als Betreiber das Blogs bemerkt man das Fehlen dieses Hinweises meist nicht, denn die eigenen Kommentare landen nie in der Moderation. Auch ich mußte erst darauf gestoßen werden – ich danke hier Andreas Borutta und Sören G. Prüfer für ihre Geduld.

Künftig steht dieser Hinweis also unter dem Eingabefeld; die Buttons zur Höhenanpassung habe ich dafür in die Leiste darüber gepackt.

Auch den Hinweis auf die Moderation habe ich jetzt besser hervorgehoben:
Screenshot Hinweis

Ich habe die Grenze jetzt von 4 auf 6 Links angehoben. Vielleicht entsorge ich sie irgendwann ganz, denn bisher hat sie fast ausschließlich gute Kommentare abgefangen. Schade. Sorry.

Sachdienliche Hinweise, die mir helfen, gestalterische Fehltritte dingfest zu machen, nehme ich auch weiterhin mit einer gesunden Mischung aus Freude und Bedauern entgegen.

7 Kommentare

  1. Dieter am 17.05.2009 · 14:45

    Hallo Thomas,

    herzlichen Dank für diesen guten Tipp, der die Benutzerfreundlichkeit erhöht.

    Habe den Code auch auf meiner Spielwiese Webseiten-Infos.de eingebaut. Zusätzlich gibt es dort noch den Hinweis, dass auch Erstkommentare freigeschaltet werden müssen, denn das habe ich in meiner WordPress-Installation so eingestellt.

    Leider bin ich kein PHP- und WordPress-Experte. Den Hinweis auf die Moderation für Kommentare würde ich auch gerne einbauen. Würde mich freuen, wenn Du den Code ebenfalls mitteilen würdest und wo er einzubauen ist.

    Beste Grüße
    Dieter

  2. Thomas Scholz am 17.05.2009 · 16:11

    @Dieter: In der comments.php gibt es einen Abschnitt, der ungefähr so aussieht, bzw. aussehen sollte:

    <?php
    	if ($comment->comment_approved == '0')
    	{
    ?>
          <p class="comment_moderated">
            <strong>Achtung: Der Kommentar muß erst noch
            freigegeben werden.</strong>
          </p>
    <?php
    	}
    ?>

    Der wird direkt über die Ausgabe des Kommentarinhaltes gesetzt.

    Den spreche ich jetzt im Stylesheet so an:

    .comment_moderated
        {
            color:        #a00;
            background:   #fff9f0;
            padding:      20px;
            border:       2px solid #a00;
        }
  3. Dieter am 17.05.2009 · 17:22

    @Thomas:

    Abschnitt in der comments.php war bei mir mit folgendem Text vorhanden:

    Dein Kommentar muss noch moderiert werden.

    Peinlich! Das hätte ich auch alleine finden können, aber wie Du schon richtig bemerkt hast:

    Als Betreiber das Blogs bemerkt man das Fehlen dieses Hinweises meist nicht, denn die eigenen Kommentare landen nie in der Moderation.

    Habe lediglich die Klasse .comment_moderated in der comments.php sowie die zugehörige Gestaltung in meiner CSS-Datei ergänzen müssen.

    Ganz herzlichen Dank für Deine Hilfe!

    Seltsamerweise sah ich aber meinen ersten Kommentar hier, nachdem ich ihn abgesandt hatte, erst einmal nicht und auch nicht den Hinweis auf die Moderation.

    Auf meiner Seite funktionierte es dagegen.

  4. Thomas Scholz am 17.05.2009 · 17:31

    @Dieter: Dein Kommentar war nicht in der Moderation, sondern im Spamfilter Akismets. Und Akismet setzt leider nicht den »Moderationsstatus«. Tut mir wirklich leid.

  5. Dieter am 17.05.2009 · 17:54

    @Thomas:

    Braucht Dir nicht leid zu tun, aber Danke für die Erklärung. Das ist das erste Mal, dass ich davon höre, dass ein Kommentar von mir im Spamfilter Akismet landet.

    Wenn ich Pech habe, ist ein Spammer im Web unterwegs, der meine Mailadresse für Spamkommentare verwendet und hat ein Blogger dann die Mailadresse bei Akismet als Spam markiert. Hatte gerade erst gestern einen Blogbeitrag gelesen, bei dem der Blogger dasselbe Problem hat.

    Werde künftig einfach eine andere, nicht im Impressum stehende und nicht öffentliche Mailadresse zum Kommentieren nehmen. Damit sollte das Problem im Akismet-Spamfilter zu landen der Vergangenheit angehören.

  6. EPICENTER am 25.06.2009 · 20:37

    Sehr gute Lösung wie ich finde! Habe mich schon öfters über das Problem geärgert, da ich die Links auf max. 2 gesetzt habe und hin und wieder ein paar Kommentare falsch laufen.
    Ein Plugin dafür wäre noch nice! Sonst ist es beim nächsten Update wieder draußen, da ich vergesse den Code nochmals zu ersetzen.

  7. Thomas Scholz am 25.06.2009 · 23:07

    Auch ein Plugin erforderte einen Eingriff ins Template, denn WordPress bietet an dieser Stelle keinen Hook an. Damit wäre also nichts gewonnen.