reCAPTCHA v3 用 JS の重複を何とかしたい

この記事は約 4 分で読めます。

4.5

Luxeritas が 3.5.7に
バージョンアップして
Google reCAPTCHA v3 を
コメントフォームで使える
ようになりました。

これで
Contact Form 7
(メールフォーム)と
コメントフォームの両方で
reCAPTCHA v3が使えるように
なった訳ですが、

記事ページのソースを見ると

Contact Form 7側の
reCAPTCHA用JSと
コメントフォーム用の
reCAPTCHA JSが

重複して表示されているので
何とかしたい。

色々と調べてみましたが、
「reCAPTCHA バッジを消す」は
ヒットするのですが、
JSの重複は出てこない。

一か八か
以下でうまくいきました。

注意点として、
メールフォームと
コメントフォームで

reCAPTCHA v3の
Site keyとSecret keyを
それぞれ違うキーに
設定する必要があります。

functions.phpへ
以下のように記述することで、

Contact Form 7を使用している
ページ以外では
Contact Form 7用の
reCAPTCHA JSは表示されません。

もちろん
「reCAPTCHA で保護されています」の
バッジも Contact Form 7を
使用しているページ以外では
表示されなくなります。

※ 記事ページは
コメントフォーム用の
「reCAPTCHA で保護されています」の
バッジが表示されます。

function deregister_cf7_files() {
  if ( ! is_page( array('131','147','325') ) ) {
    wp_dequeue_script( 'google-recaptcha',plugins_url( '//www.google.com/recaptcha/api.js?render=【Contact Form 7 のreCHAPTCHA Site key】', __FILE__ ) );
  }
}

Contact Form 7のJSとCSS、
reCAPTCHAのJSと
併せて書くと以下になります。

function deregister_cf7_files() {
  if ( ! is_page( array('131','147','325') ) ) {
    wp_dequeue_style( 'contact-form-7' );
    wp_dequeue_script( 'contact-form-7' );
    wp_dequeue_script( 'google-recaptcha',plugins_url( '//www.google.com/recaptcha/api.js?render=【Contact Form 7 のreCHAPTCHA Site key】', __FILE__ ) );
  }
}

貴重なお時間を割き、
最後まで
ご高覧いただきまして
有難うございました
reCAPTCHA v3 用 JS の重複を何とかしたい