割りと邪魔。
仕様の理解
要するにGoogleが提供してるセキュリティの云々であって、contact form 7とかで追加設定できる。
それこそCF7で仕込むとどうなるかと言えば、サイト上の全てでreCAPTCHAが読み込まれる。フォームの有無に関係なく設置されるんで無駄な読み込みになる。右下にアイコンが表示されるし邪魔くさい。
ページの読み込み速度をチェックすると取り上げられる要素の一つ。
PageSpeed Insights
なので、不要なページでは非表示にしたいという取り組み。
functions.phpで制御
ここを参考に。
reCAPTCHAをContact Form 7(お問い合わせフォーム)のみに読み込み制限をかける - 原神攻略サイト
#20250;#31038;#12398;Web#12469;#12452;#12488;#12420;Blog#12434;#36939;#21942;#12375;#12390;#12356
うちではよく親要素を指定するので、こういうのを仕込んである。
//親ページ条件分岐用
function is_parent_slug() {
global $post;
if ($post->post_parent) {
$post_data = get_post($post->post_parent);
return $post_data->post_name;
}
}
で、これを踏まえて複数条件だとこんな感じ。
// reCaptcha読み込み制限
function recaptcha_limitation() {
if( !(is_page( 'form' )) && !(is_parent_slug() === 'form') && !(is_parent_slug() === 'lp')){
wp_deregister_script( 'google-recaptcha' );
}
}
add_action( 'wp_enqueue_scripts', 'recaptcha_limitation', 50 );
「これらのページ以外だったら非表示」の内容。
注意と言うか
フォームのプラグインはだいたいどのページにでも挿入できるようになるわけで、だから新着情報内にフォームを突っ込んだりする。つまり、LPとかだと階層で管理できるんだけどそうもいかない場合がある。そういうときはめんどくさいので諦めるか、随時記載するかになる。だるい。めんどい。
もうちょっと凝った組み方をしたほうがいいかもしんない。
コメント