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ドクターまでお送りください