[WordPress] Contact Form 7 の reCAPTCHAバッジ をフォームページ以外で非表示にする方法
WordPressでフォームを実装する定番プラグイン「Contact Form 7」のインテグレーション設定で reCAPTCHA を有効化すると、サイト内のすべてのページに reCAPTCHA バッジが表示されます。
しかし、フォームページ以外では reCAPTCHA バッジを表示したくないケースもあります。
この記事では、特定のページでのみ reCAPTCHA バッジを表示する方法を紹介します。
Contact Form 7 のインテグレーション設定を有効化した場合
reCAPTCHA を有効にすると、デフォルトではすべてのページにバッジが表示されます。
全ページには reCAPTCHA バッジを表示したくない
・ページの表示速度に影響する
・不要なバッジがデザインの邪魔になる(ページトップへボタンに被る、など)
フォーム以外のページで reCAPTCHA バッジを非表示にする方法
以下のコードをテーマの functions.php に追加することで、
指定したページ以外ではgoogle-recaptchaスクリプトを読み込ませず、reCAPTCHA バッジを非表示にできます。
単一ページの場合
1 2 3 4 |
add_action( 'wp_enqueue_scripts', function() { if ( is_page( 'contact' ) ) return; // 固定ページのスラッグが「contact」の場合はスクリプトを読み込む wp_deregister_script( 'google-recaptcha' ); // その他ページではスクリプトを解除 }, 100, 0); |
例:固定ページのスラッグが contact の場合のみ reCAPTCHA を表示
複数ページの場合
1 2 3 4 |
add_action( 'wp_enqueue_scripts', function() { if ( is_page( array( 'contact', 'recruit' ) ) ) return; // 複数ページに対応 wp_deregister_script( 'google-recaptcha' ); }, 100, 0); |
例:固定ページのスラッグが contact、recruit の場合に reCAPTCHA を表示
このように、wp_deregister_script を使うことで、reCAPTCHA のスクリプトを不要なページでは読み込まず、
表示速度の改善や見た目の整理につながります。