先日、WordPressのContact Form 7にGoogleが提供しているセキュリティツール「reCAPTCHA」を実装しましたが、全ページの右下に保護マークが表示するようになっていました。
結果的に「トップへ戻る」ボタンと重なってしまいユーザビリティ的に微妙になってしまいました。また、Google reCAPTCHAを読み込むとGoogleのPageSpeed Insights上のパフォーマンススコアが下がるらしいです。
その対策として、今回はお問い合わせページのみでreCAPTCHAを実行させる方法を解説していきます。
ご自身のWordPressフォルダから「wp-content」>「theme」>「テーマのフォルダ」>「functions.php」を開き以下のソースコードを追記してください。
注意
functions.phpを編集する前に必ずバックアップを取るようにしておきましょう。
PHP
add_action('wp_enqueue_scripts', function () {
global $post;
$valid_recaptcha = false;
$content = get_post()->post_content;
if($content != null){
//Contact Form7のショートコードが存在する場合
if(has_shortcode($content, 'contact-form-7')) {
$valid_recaptcha = true;
}
}
//ショートコードが存在しないならキャンセル
if($valid_recaptcha == false){
wp_deregister_script( 'google-recaptcha' );
}
}, 100);
これで、お問い合わせページのみreCAPTCHAが読み込まれるようになります。