ここはちょっと見せられない

ぜったいぜったい見せられない

reCAPTCHA v3 を ContactForm7 で設定すると全ページにreCAPTCHA用のscriptが出力される

v3になって、クリック認証が不要になったんだけど、右下にマークが出るようになった。これが全ページに表示されてしまうので、とりあえずなんとかしてみた。

公式には↓こう書いてあったのだけど、reCAPTCHA v3のscriptは別扱いっぽい。これを設定しても出力されてしまう。(そのうち修正されるかなあ? とりあえず報告とかしてない)

必要な場合だけ JavaScript とスタイルシートをロードさせるには | Contact Form 7 [日本語]

幸い(?)扱っていたサイトでは

remove_action('wp_head', 'wp_enqueue_scripts');

なんてことをしていて、script読み込みを抑制していたので、都合よく使ってみる。

function wpcf7_file_control()
{
    global $post;
    if( ! has_shortcode( $post->post_content, 'contact-form-7') ){
      remove_action('wp_head', 'wp_enqueue_scripts', 1); 
    }   
}
add_action("template_redirect", "wpcf7_file_control");

これで、CF7のショートコードを入れているページにのみ、scriptを出力する。

場当たり的な対応で、たまたま設定上できたって内容なので推奨はできないね。