mercredi 12 novembre 2014

WordPress : Filtrer les commentaires en amont pour éviter le spam

Si vous utilisez les commentaires sur votre site tournant sous WordPress, vous avez sûrement déjà été confronté aux commentaires indésirables.
Ces commentaires sont la plupart du temps envoyés par des robots nous ventant la qualité de leurs pilules amaigrissantes ou revigorantes, de leurs sacs à mains ou autres montres de grandes marques... bref, ces commentaires n'ont rien à faire sur votre site !
WordPress : Filtrer les commentaires en amont pour éviter le spam
Voici un petit bout de code PHP à placer dans le fichier functions.php de votre thème qui va "pré-filtrer" les commentaires postés sur votre site afin de vérifier si il s'agit ou non d'un spam.

Les spammeurs utilisent souvent une URL comme nom d'utilisateur. Le petit bout de code ci-dessous va vérifier la longueur du nom d'utilisateur afin de vérifier s'il s'agit d'une potentielle URL. Si c'est le cas, le commentaire sera classé automatiquement dans les spams.

Voici le le code à intégrer :

add_filter( 'pre_comment_approved', 'am_check_spam_comment', 99, 2 );
function am_check_spam_comment( $approved, $commentdata ) {
    return ( strlen( $commentdata['comment_author'] ) > 75 ) ? 'spam' : $approved;
}


Dans l'exemple ci-dessus, on vérifie si le nom d'utilisateur dépasse les 75 caractères, si c'est le cas, direction les spams.
Vous pouvez, bien évidemment, modifier ce code afin de filtrer les commentaires selon un nombre de caractères différent.

Ce code est inspiré par la fonction de norcross, qui se base sur la longueur de l'URL fournie par l'auteur du commentaire : https://gist.github.com/norcross/5468979

Il ne s'agit pas là d'une solution miracle, mais cela peut constituer une aide bien appréciable.

Aucun commentaire:

Enregistrer un commentaire