概要
wpcf7_akismet_comment_check
は、WordPress の Contact Form 7 プラグインにおいて、スパムコメントを検出するために Akismet を利用するためのフィルタです。このフィルタを利用することで、フォームに送信されたデータがスパムかどうかをチェックし、不正な内容を排除することができます。特にこのフィルタは以下のような機能を実装する際によく使用されます。
- スパムコメントの自動検出
- ユーザーからのフィードバック収集におけるスパム防止
- フォームの信頼性向上
- フォーム送信前のデータ検証
- ログのトレースの効率化
- ユーザー体験を損なわないスパム対策
構文
add_filter('wpcf7_akismet_comment_check', 'your_custom_function', 10, 2);
パラメータ
$result
: Akismet のスパムチェックの結果(boolean)。$submission
: フォームの送信データ。
戻り値
boolean
:スパムである場合はtrue
、そうでない場合はfalse
。
使用可能なプラグインバージョン
- Contact Form 7: 5.0以上
使用可能な WordPress バージョン
- WordPress: 4.7以上
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード一覧
サンプルコード 1: 簡単なスパムチェック
add_filter('wpcf7_akismet_comment_check', 'custom_akismet_check', 10, 2);
function custom_akismet_check($result, $submission) {
if (strpos($submission->get_posted_data()['your-message'], 'spam') !== false) {
return true; // スパム判定
}
return $result;
}
このサンプルコードは、送信されたメッセージに「spam」という単語が含まれている場合、スパムと判定します。
サンプルコード 2: 特定のメールアドレスをスパム扱い
add_filter('wpcf7_akismet_comment_check', 'custom_email_spam_check', 10, 2);
function custom_email_spam_check($result, $submission) {
$data = $submission->get_posted_data();
if ($data['your-email'] === 'spam@example.com') {
return true; // このメールはスパム
}
return $result;
}
このサンプルコードは、特定のメールアドレスが入力された場合、そのフォームの送信をスパムと判定します。
サンプルコード 3: 特定のキーワードを含む場合にスパム判定
add_filter('wpcf7_akismet_comment_check', 'keyword_spam_filter', 10, 2);
function keyword_spam_filter($result, $submission) {
$spam_keywords = ['viagra', 'cialis', 'cheap', 'free'];
$data = $submission->get_posted_data();
foreach ($spam_keywords as $keyword) {
if (strpos($data['your-message'], $keyword) !== false) {
return true; // スパムと判定
}
}
return $result;
}
このサンプルコードは、送信メッセージに特定のスパムキーワードが含まれる場合に、そのフォームをスパムと判定します。
サンプルコード 4: リファラーのチェック
add_filter('wpcf7_akismet_comment_check', 'referrer_check', 10, 2);
function referrer_check($result, $submission) {
if (!isset($_SERVER['HTTP_REFERER']) || strpos($_SERVER['HTTP_REFERER'], 'trusteddomain.com') === false) {
return true; // 信頼できないリファラーならスパム
}
return $result;
}
このサンプルコードは、信頼できないリファラーからの送信をスパムとして判断します。
サンプルコード 5: 問題のあるURLをスパム扱い
add_filter('wpcf7_akismet_comment_check', 'url_spam_filter', 10, 2);
function url_spam_filter($result, $submission) {
$data = $submission->get_posted_data();
if (filter_var($data['your-website'], FILTER_VALIDATE_URL) &&
strpos($data['your-website'], 'spammysite.com') !== false) {
return true; // 問題のあるURLをスパム扱い
}
return $result;
}
このサンプルコードは、問題のあるURLを含む場合、そのフォームをスパムと判定します。