【WordPress】reCAPTCHA V3のアイコンを指定したページにのみ表示する方|Contact Form7の全ページ表示の対策方法

wordpress-prograshi(プロぐらし)-kv WordPress
記事内に広告が含まれていることがあります。

「ウェブサイトにセキュリティ強化は必須だけど、reCAPTCHA V3のアイコンが全ページに表示されていて、デザインやユーザー体験を損ねている…」とお悩みではありませんか?

特に、Contact Form 7をご利用の場合、reCAPTCHA V3のアイコンが意図せず全ページに表示されてしまうことがあります。

この記事では、そんなWordPressユーザーの皆さんの悩みを解決します。

reCAPTCHA V3のアイコンを、お問い合わせページなど、指定した必要なページにのみ表示させる具体的な方法を、コードを交えてわかりやすく解説します。

ウェブサイトのセキュリティを維持しつつ、デザイン性とユーザー体験を向上させるための実践的なテクニックをご紹介します。もう、アイコンの全ページ表示に悩む必要はありません。


Contact Form7のインテグレーションでは全ページに表示されてしまう

スパムメールの対策として、Contact Form7にはオプションで「インテグレーション」が設けられています。


インテグレーションを選択すると、サイトキーとシークレットキーを入力するだけで超簡単にreCAPTCHAを設定することができます。


ところが、この方法では全ページにreCAPTCHA v3のアイコンが表示されてしまいます


デザイン上かなり邪魔なので、これを指定したページにのみ表示したいところです。


【注意点】display: none; はNG

reCAPTCHA v3のアイコンをdisplay: none; で強制的に非表示にすることはお勧めできません。

この方法はreCAPTCHAの利用規約に反しており、何より、フォームが上手く機能しなくなることがあります

具体的には、フォームに正しく内容を入力して送信ボタンをクリックするとエラーメッセージが表示され送信できないという事象です。



【対策】指定ページにのみreCAPTCHAをセットする

問い合わせページなど、指定したページにのみreCAPTCHAのアイコンを表示したい場合は、

①Contact Form7のreCAPTCHAのキーを削除する(設定済みの場合)
②functions.phpに以下のコードを追記

////////Contact Form7 Recaptchaを指定ページにのみ埋め込む////////
function load_recaptcha_v3_show_pages() {
    if ( is_page( array( 'スラッグ1', 'スラッグ2' ) ) ) {
        echo '<script src="https://www.google.com/recaptcha/api.js?render=サイトキー" defer></script>';
    }
}
add_action( 'wp_footer', 'load_recaptcha_v3_show_pages(' );



コード解説

 if ( is_page( array( 'スラッグ1', 'スラッグ2' ) ) ) {

表示したいページのスラッグをarrayで指定します。例えば、https://example.com/formというページに設定したければ、is_page( array( 'form')とします。

指定したページにのみ以下の処理を実行します。


echo '<script src="https://www.google.com/recaptcha/api.js?render=サイトキー" defer></script>';

reCAPTCHAのサイトキーをURLのパラメータに入力します。

これで、指定したページにのみreCAPTCHAを挿入することができます。


最後に、フォームが正しく送信できるか確認して完了です。




タイトルとURLをコピーしました