【WordPress】コメントスパム防止プラグイン

WordPressを使っていると次第にコメントスパムが増加してきます。

その対策としては、Akismetプラグインを入れることなどが挙げられますが、Akismetだとスパムの判別は出来ても、スパム投稿そのものは防ぐことはできません。その結果、データベースのオーバーヘッドが増加し、サイトのパフォーマンスも低下してきます。

そこで、PHPを使い、コメントが、スパムの特徴であるURL入力している場合、投稿そのものを中止する簡易スクリプトを組んでみました。

wp-content/pluginsディレクトリ内に、stopping_spamsディレクトリを作成します。そして、その中に、次のstopping_spams.phpファイルを新規に作成します。

※お約束ですが、ご利用は自己責任でお願いします。

<?php

/*
Plugin Name: Stopping Spams
Plugin URI: http://webmaster.chielog.com/
Description: For Stopping Spams before Insert to DB
Author: webmaster.chielog.com
Version: 1.0.0
Author URI: http://webmaster.chielog.com/
License: GPLv2 or later
*/

//pre_comment_content(コメント本文)
//コメント本文がデータベースに保存される前に適用されるフィルター。 

add_filter('pre_comment_content', 'stopping_spams');

function stopping_spams($comment_content){

    $spam_flag = false; //初期値はfalse

    //URL欄判定(入力されていればスパムと判定)
    if (!empty($_POST['url'])) {
        $spam_flag = true;
    }

    //スパム時の処理
    if ($spam_flag) {

        wp_die('comment error.'); //終了

    } else {

        //スパムでなければそのまま返す
        return $comment_content;
    }
}

コメントが投稿されDBに保存される直前にフィルターフック(pre_comment_content)により、$_POST[‘url’]の入力をチェックし、URLの入力を判定しています。

たった30行程のコードですが、このプラグインを設置することによりスパムが随分と減りました。

以上です。

カテゴリー: WordPress パーマリンク

コメントを残す

メールアドレスが公開されることはありません。