MW WP Formに対して、reCAPTCHA v3を導入しようと、
reCAPTCHA for MW WP Formプラグインをインストール。
サイトキー、シークレットキーの設定、
MW WP Formの指定のタグの挿入を実施しました。
この対応でフォームのページにreCAPTCHAのバッヂが表示されれば、
正常な動作という事かと思いますが、バッヂが表示されません。
正常に機能しているページのソースと見比べてみると、
正常なページでは、ソースコードの後半に下記のようなコードが挿入されていました。
html
1<script type='text/javascript' src='https://www.google.com/recaptcha/api.js?render=****;ver=5.6.2' id='recaptcha-script-js'></script> 2<script type='text/javascript' id='recaptcha-script-js-after'> 3grecaptcha.ready(function() { 4 grecaptcha.execute('****', { 5 action: 'homepage' 6 }).then(function(token) { 7 var recaptchaResponse = jQuery('input[name="recaptcha-v3"]'); 8 recaptchaResponse.val(token); 9 }); 10 }); 11</script>
動作していないページではこのコードが挿入されていません。
おそらく wp_footer() の箇所に表示されているのかと思います。
wp_footer() の動作不良かと下記コードを
function.phpに記述してみると、これは出力ができました。
php
1function add_my_footer() { 2 echo '<!-- check -->'; 3} 4add_action('wp_footer', 'add_my_footer');
動作不良として、どこに原因がありそうか、
アドバイスをいただけないでしょうか
よろしくお願い致します。
対策と結果
WordPressのjQuery読み込みを回避していたので、
function.php に
フォームの入力、確認、完了ページのIDのみjQueryを読み込むコードを追加しました。
php
1function load_script(){ 2 if ( !is_admin() ){ 3 wp_deregister_script('jquery'); 4 } 5 if ( is_page(**) || is_page(**) || is_page(**) ){ 6 wp_enqueue_script('jquery'); 7 } 8} 9add_action('init', 'load_script');
結果に変化はありませんでした。
出力されているコード自体にも変化がなく、
WordPressのjQueryが読み込まれているという印象もないです。
記述方法に誤りがあるのでしょうか?
回答2件
あなたの回答
tips
プレビュー