WordPressにGoogle reCAPTCHAを導入している場合、コメント欄を閉鎖しているページでもreCAPTCHAの表示が出ていて邪魔だと思ったことはありませんか?

ページ上部に戻るボタンと重なったりすると邪魔ですよね…


この記事では、Google reCAPTCHAを特定のページにだけ表示させる方法を解説しています!
Google reCAPTCHAを特定のページにだけ表示させる方法
早速、Google reCAPTCHAを特定のページにだけ表示させる方法を解説します。
以下の手順に従って設定してください。
Google reCAPTCHAを表示するページを決める
このページは、「特定のページ以外では表示しない」という方法の解説です。
そのため、逆に表示したいページをリストアップしていき、それ以外に非表示処理を適用します。
reCAPTCHAはbotと人間を区別するサービスです。
つまり、コメント欄のあるページや問い合わせページなど、ユーザーから入力されるページをリストアップします。
functions.phpにコード追記
functions.phpに以下のコードを追記するだけでreCAPTCHAを非表示にできます。
function loadRCPv3(){
if (!is_page(array('inquiry','123')) && !is_single('テスト')){
wp_deregister_script('google-recaptcha');
}
}
add_action('wp_enqueue_scripts','loadRCPv3',50);
基本的にはコピペでOKですが、1ヶ所だけ各サイトごとに変更が必要な部分があります。
reCAPTCHAを表示したいページのIDまたはスラッグまたはタイトルを記載します。
コード解説
変更が必要な部分の解説
- is_page
-
固定ページを探します。
投稿ID、スラッグ、ページタイトルを指定できます。 - is_single
-
投稿ページを探します。
投稿ID、スラッグ、ページタイトルを指定できます。
if (!is_page(array('inquiry','123')) && !is_single('テスト'))
例えば上記では以下の3ページにreCAPTCHAが表示されます。
・スラッグが「inquiry」と投稿IDが「123」の固定ページ
・投稿タイトルが「テスト」の投稿
変更不要部分の解説
wp_deregister_script('google-recaptcha');
は、google-recaptcha
というスクリプトを 解除(読み込まれないように) しています。
また、以下のコードは「loadRCPv3関数」をフックに追加し、WordPressのスクリプト登録処理に対して、この関数の処理を適用しています。
add_action('wp_enqueue_scripts','loadRCPv3',50);
50の部分はフックの優先度で、数値が大きいほど後に実行されます(デフォルトは10)。
他のスクリプト登録よりも後に実行されるように、やや大きめの数値で登録しています。
コメント・ご指摘などあればこちらへ!