Contact Form 7でreCAPTCHA v3のロゴを非表示にする方法

「Contact Form 7」にスパム防止で「reCAPTCHA」の「V3」を使用時、 サイトの右下にロゴが表示されますが、これが、「トップへのボタンとかぶり」非常に邪魔です。
しかも、フォーム以外の、サイトの全ページに表示されます。

とはいえ、この「 reCAPTCHA 」を使用する場合は、reCAPTCHAを使っているページにはロゴを必ず表示しなければいけないという規約があります。

ですので、フォーム以外に表示させない方法示します。

reCAPTCHAを使っているページにだけロゴを表示しよう

では、どうすればいいのかと言うと、最も簡単で安全なのはreCAPTCHAを使っているページにだけロゴを表示することです。

逆に言えば、reCAPTCHAで認証する必要がないページではreCAPTCHA関連のプログラムを読み込まないってことですね。

今回はお問い合わせページ(Contact Form 7)での話ですが、フォーラム(bbpress)やECサイト(woocommerce)に関しても同じことが言えます。

functions.phpに追加するコード

以下が、お問い合わせフォームがあるページ以外でreCAPTCHAのロゴを非表示にするコードです。Contact Form 7によって追加されるreCAPTCHA関連のコードがすべて読み込まれなくなります。

functions.phpにコピペし、一部修正するだけで終わりです。

add_action( 'wp_enqueue_scripts', function() {
	if(is_page('contact')) return;
    wp_deregister_script( 'google-recaptcha' );
});

変更するのは「contact」の部分。

ここにはお問い合わせページのIDか、パーマリンク(最後のスラッシュ以降の文字列)が入ります。

例えば、「xxx.com」というサイトの場合、「xxxx.com/contact」がお問い合わせページのURLなので、文字列は「contact」となります。

◯◯.com/offer がお問い合わせページなら「offer」、◯◯.net/form/なら「form」となります。

お問い合わせページが固定ページではない場合

基本的に、お問い合わせページは「固定ページ」で作成しますが、よくわからずに通常の「投稿」で作成しているかもしれません。

その場合は、is_pageの部分を「is_single」にすればOKです。

add_action( 'wp_enqueue_scripts', function() {
	if(is_single('contact')) return;
    wp_deregister_script( 'google-recaptcha' );
});

但し、ウィジェットを使ってすべてのページにお問い合わせフォームを表示している場合は使えないので注意。

お問い合わせフォームが複数のページにある場合

複数ページでお問い合わせフォームを非表示にするやり方ですが、return;がある行を複数回記述すればOKです。多分それが1番わかりやすいと思います。

add_action( 'wp_enqueue_scripts', function() {
	if(is_page('contact1')) return;
	if(is_page('contact2')) return;
	if(is_page('contact3')) return;
	if(is_single('contact4')) return;
    wp_deregister_script( 'google-recaptcha' );
});

または、

add_action( 'wp_enqueue_scripts', function() {
	if(is_page([
        'contact1',
        'contact2',
        'contact3',
    ])) return;
    wp_deregister_script( 'google-recaptcha' );
});

<おまけ>お問い合わせページ以外でContact Form 7関連のコードを削除する方法

ついでにお問い合わせフォームを設置していないページでContact Form 7のコードを読み込ませないようにすると、サイトの読み込み速度がアップします。

さきほどご紹介したコードにwp_dequeue_style( 'contact-form-7' );wp_deregister_script( 'contact-form-7' );を追加すればOK。

add_action( 'wp_enqueue_scripts', function() {
	if(is_page('contact')) return;
    wp_dequeue_style( 'contact-form-7' );
    wp_deregister_script( 'contact-form-7' );
    wp_deregister_script( 'google-recaptcha' );
});
Share on facebook
Facebook
Share on google
Google+
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on pinterest
Pinterest

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

9 − 1 =