先日、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()
が動作してくれるようになりましたとさ。
同じ状況になっている方は試してみてもよいのかも。