WP
reCAPTCHA v.3をプラグインなしで
KEY発行
Googleアカウントにログイン済みの状態で
http://www.google.com/recaptcha/admin
より新しくサイトを登録し、KEYとシークレットKEYを発行。
サイトに実装
テーマ側に追加するコード①
//==========================================
// recaptcha
// ================
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['recaptcha_response'])) {
// Build POST request:
$recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify';
$recaptcha_secret = '〇〇〇〇〇〇〇〇〇〇〇〇'; // シークレットキー
$recaptcha_response = $_POST['recaptcha_response'];
// Make and decode POST request:
$recaptcha = file_get_contents($recaptcha_url . '?secret=' . $recaptcha_secret . '&response=' . $recaptcha_response);
$recaptcha = json_decode($recaptcha);
// Take action based on the score returned:
if ($recaptcha->score >= 0.5) { // botか人かの判定は中間の0.5と本メモでは設定
// Verified - send email
} else {
// Not verified - show form error
}
}
テーマ側に追加するコード②
KEYを〇〇〇に2箇所入れる。※シークレットKEYではない。
<!-- スラッグがcontactとentryのページに設置する場合 -->
<?php if ( is_page('contact') || is_page('entry') ) : ?>
<script src="https://www.google.com/recaptcha/api.js?render=〇〇〇〇〇〇〇〇〇〇〇〇"></script>
<script>
grecaptcha.ready(function () {
grecaptcha.execute('〇〇〇〇〇〇〇〇〇〇〇〇', {action: 'homepage'}).then(function(token) {
var recaptchaResponse = document.getElementById('recaptchaResponse');
recaptchaResponse.value = token;
});
});
</script>
<?php endif; ?>
管理画面側に追加するコード
※フォーム(プラグイン側)に追記
実際にフォームパーツを生成しているエディター内の最下部に以下をペースト
<input type="hidden" name="recaptchaResponse" id="recaptchaResponse">
で右下にかわいいのが出るようになる。完了。
補足
1000回/1秒(100万回/1ヶ月)以上のアクセスが見込まれるケースではEnterprise(有償)版を利用する