DigiLoog

PC関係の事なら何でもいけるそんな処

メールフォームとコメント欄をreCAPTCHAに対応させた

2019年01月19日(土) - 23:55 | カテゴリ: 雑談

昨年までは、ブログの全記事・固定ページにコメント欄を表示しつつ、
そのコメント欄の認証も簡易的な数値入力型となっていたのだが、
ちょっと前からスパム等が増えてきていたのでreCAPTCHAに対応させた。

ただ、そのままコメント欄とメールフォームをreCAPTCHAに対応させると、
コメント欄用とメールフォーム用の利用規約が重複で表示されてしまい邪魔だったので、
規約違反にならない事に留意しつつ非表示化させてみた。

左:メールフォーム。reCAPTCHA v3なのでチェックボックス自体が無い
右:コメント欄。こちらは、reCAPTCHA v2なのでチェックボックスがある

幸いな事に、メールフォームは固定ページに埋め込んでいるので、
参考ページに記載の内容を少し捩ってこんな感じのコードを書いた。

function hide_policy(){
    if(is_page(‘mail’)) return;
    wp_deregister_script(‘google-recaptcha’);
}
add_action(‘wp_enqueue_scripts’, ‘hide_policy’);

※実際には1バイトのシングルクォーテーションを使う

add_actionを関数の後に書いているのは個人的な趣味 ヘ(゚∀゚ヘ)
通常ページで作成している場合は “is_page” を “is_single” にするらしい。
さらにチューニングするなら、メールフォーム以外でのモジュール読込みを無効化する事も出来るが、
他のモジュールとモバイル用テーマとの兼ね合いで今回はそこまでのチューニングは行わなかった。

本来は、全てreCAPTCHA v3化させてチェックボックス自体を非表示にしつつ、
全ページで利用規約を表示させるのが良いのだろうが、v3の採用例が比較的少なかったり、
そもそも完全非表示で本当に大丈夫なのか疑問でもあるので、
暫くは、コメント欄をv2・メールフォームをv3にしつつ上記の非表示を併用する事で、
全体のデザインを損なわずに使ってみようと思う。





  • 応援中

    はじめるセカイの理想論 -goodbye world index-