ハナモゲラボ / 試行錯誤の実験人生

日々、PCや各種デバイス、楽器等に翻弄されながら電脳の森をさまよう男の日常と様々な実験をさらりと記しております。

Contact Form 7(Ver5.1以降)のreCAPTCHA(v3)のバナーをフォーム部分だけに表示させる

December 23 2018

何のけなしにContact Form 7をアップデートすると「私はロボットではありません」が消えてました。
どうやら5.1以降はreCAPTCHAのAPIがVer3のみ対応となり、今までの[recaptcha]タグが無視されるようになるとの事。

というわけでAPI KEYをまずはV3で取りなおしになります。
Wordpress管理画面の「お問い合わせ」→「インテグレーション」に入力してた物をVer3の物に置き換えると・・・

今度は全てのページの右下にreCAPTCHAのバナーが出っぱなしになりよるんですわね(笑)
なんじゃいその極端な表示の仕方、と思いましてなんぞ設定でどないか出来んかいねと設定項目を探したんですが、そういう項目はまだ追加されていないようで。

とはいえ、せめて送信フォームがある所だけに表示してくれればいいんやけどなあ、と思って色々調べていると、こういう記事を発見しました。

https://wordpress.org/support/topic/how-to-lload-scriptsstyles-and-recatcha-v3-only-when-needed/

WordPressの英語版のフォーラムに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_style( 'contact-form-7' );
		
    }

}
add_action( 'wp_enqueue_scripts', 'contactform_dequeue_scripts', 99 );

これで無事、コンタクトフォームがあるページにだけreCAPTCHAバナーが表示されるようになりました。

| Posted in Wordpress | Comments (0)

Post a Comment

※メールアドレス、URLは任意入力です。メールアドレスは入力しても公開されません。

« Jul 2019 August 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31