Jeder, der schon einmal einen WordPress-Blog betrieben hat, wird das Problem der Spam-Kommentare kennen. Neben dem Einsatz von entsprechenden Plugins, die Spam automatisch ausfiltern sollen, kann man schon bei der Entwicklung des Themes gegen das Problem steuern.
Durch den Einsatz eines kleinen Snippets innerhalb der functions.php-Datei des Themes, lässt sich die minimale Länge von Kommentaren festlegen. Sinn befreite Kommentare wie „toll“, „Genial!“, etc. gehören damit der Vergangenheit an.
1 2 3 4 5 6 7 8 |
function minimale_kommentar_laenge( $kommentar ) { $minimaleLaenge = 60; if ( strlen( trim( $kommentar['comment_content'] ) ) < $minimaleLaenge ){ wp_die( 'Der Kommentar muss mindestens ' . $minimaleLaenge . ' Zeichen lang sein.' ); } return $commentdata; } add_filter( 'preprocess_comment', 'minimale_kommentar_laenge' ); |
Das Snippet arbeitet wieder mit einem Filter- genauer gesagt mit dem „preprocess_comment“-Filter, welcher auslöst, wenn ein Kommentar verfasst und abgeschickt wurde. Bevor der Kommentar nun verarbeitet und in der WordPress-Datenbank abgelegt wird, klinkt sich der preprocess_comment-Filter ein und ruft unsere minimale_kommentar_laenge-Funktion auf. Innerhalb der Funktion legen wir zuerst die minimale Anzahl an Zeichen fest, die ein Kommentar haben muss.
Danach prüfen wir, ob der übermittelte Kommentar ($commentdata[‚comment_content‘]) weniger Zeichen als die vorgegebene Länge hat. Wenn dies der Fall ist, brechen wir die Kommentar verarbeitet mittels wp_die und einer Fehlermeldung ab. Anderenfalls verlassen wir die Funktion mittels return und lassen WordPress den Kommentar verarbeiten.