WEB開発 WordPress

[WordPress]ver5.9でreCAPTCHAが全画面に有効になっていた件

※本サイトはPR表記を含みます。

先日、WordPressのバージョンを5.9にやっとこさバージョンアップしました。(記事更新時はver.5.9.1が最新)

そこで自分のブログをパトロールしていたのですが、「ん?」と気付いたことが。

 

reCAPTHAが全画面で有効になっている?(いつしか特定の箇所しか有効にしなかったハズ)

と違和感を感じ、過去の記事を探りました。

あった、あった、コレ

Google:reCAPTCHA v3を必要な画面だけ有効にする

続きを見る

 

確かに設定はしていたのですが、バージョンアップによってフック機能の優先度が変わったっぽいです。

そこで、引数に優先度を上げることで対処すると、無事に特定の画面だけreCAPTCHAを有効にすることができました。

(ページ読み込みの速さは改善されるはず)

 

作業履歴を残しておきます。

 

step
1
「外観」→「テーマファイルエディター」へ

まずはエディターへ移動します。

メインサイドメニューの「外観」から「テーマファイルエディター」に行きましょう。

 

step
2
「テーマファイルエディター」→「テーマのための関数」へ

テーマファイルエディターへ移動すると、最初は「スタイルシート」が選択されている状態なので、右サイドメニューの「テーマのための関数」を選択します。

 

step
3
フック優先度の引数を追加する

<?php
if ( !defined( 'ABSPATH' ) ) {
exit;
}

// お問い合わせ(/contact)以外、「reCAPTCHA」は読み込まない
function load_recaptcha_js() {
    if (!is_page('contact')) {
        wp_deregister_script('google-recaptcha');
    }
}
// 第3引数(フック優先度) デフォルト値: int 10。機能しない場合は数字を100なども可)
add_action('wp_enqueue_scripts', 'load_recaptcha_js', 100); // 第三引数のフック優先度を追加した

reCAPTCHA設定の部分です。WordPressのver5.9にするまではadd_action()関数は第三引数を設定せず(デフォルト値は10。)でも機能したのですが、ここを100としてみました。(優先度を上げた)

そうすることで、load_recaptcha_js()が動作してくれるようになりましたとさ。

 

同じ状況になっている方は試してみてもよいのかも。

-WEB開発, WordPress
-