ContactForm7のreCAPTCHA (v3)キャプチャをお問い合わせフォームがあるページにだけ表示させる方法を解説いたします。

ContactForm7 のキャプチャ機能

ContactForm7プラグインには、GoogleのRecaptcha(フォーム送信者が人かどうか判断して、スパムメールを防ぐ仕組み)を有効にすることができます。

しかしキャプチャのロゴが全ページに出てしまいますのでサイトのボタンを覆い隠してしまったり、無用な表示ですのでお問い合わせフォームのページにだけ出るようにしてみましょう。

テーマのFunctions.php からContactForm7キャプチャをお問い合わせページだけに表示する方法

下記のコードをワードプレスの管理画面>外観>テーマの編集 ボタンから、Functions.phpを選択し最下部にコピペしてみてください。

//Recaptchaをお問い合わせページにのみ表示します
function contactform_dequeue_scripts() {
    $load_scripts = false;
    if( is_singular() ) {
        $post = get_post();
        if( has_shortcode($post->post_content, 'contact-form-7') ) {
            $load_scripts = true;  
        }

    }
    if( ! $load_scripts ) {
        wp_dequeue_script( 'contact-form-7' );
        wp_dequeue_script( 'google-recaptcha' );
        wp_dequeue_script( 'wpcf7-recaptcha' );     
        wp_dequeue_style( 'wpcf7-recaptcha' );
        wp_dequeue_style( 'contact-form-7' );
        
    }
}
add_action( 'wp_enqueue_scripts', 'contactform_dequeue_scripts', 99 );

このコードは、
is_singular() → 単体ページ かつ
has_shortcode($post->post_content, ‘contact-form-7’) → コンタクトフォーム7のショートコードがある

ページ以外は
wp_dequeue_script( ※5つのスクリプトやスタイル) によってContactForm7関連のコードを読み込まないようにします。
問い合わせフォームのないページに不要なContactForm7関連のスクリプトやスタイルが読み込まれなくなりますので、速度改善効果も望めます。キャプチャーを使用されていなくてもご利用可能です。

WordPressのセキュリティー対策マルウェア駆除、テーマのカスタマイズのご相談ご依頼はお気軽にWPドクターまでお送りください