Contact Form 7を使ってお問い合わせフォームを作っています。
スパムを防止するためにRecaptchaをつけていますが、そのせいでPagespeed InsightsなどでRecaptcha.jsがいつも「使用していない JavaScript の削減」か「レンダリングを妨げるリソースの除外」に出てきていました。
そのため、Recaptcha.jsがお問い合わせページ以外でロードしないようにする方法を調べて、実装しました。
以下のコードをfunctions.phpに入れてください。
function block_recaptcha_badge() {
if ( !is_page( array( 'contact-me' ) ) ) {
wp_dequeue_script( 'google-recaptcha' );
wp_deregister_script( 'google-recaptcha' );
add_filter( 'wpcf7_load_js', '__return_false' );
add_filter( 'wpcf7_load_css', '__return_false' );
}
}
add_action( 'wp_print_scripts', 'block_recaptcha_badge' );
もし、コンタクトフォームページが複数ある場合は、
array( ‘contact-me’の部分を増やしていけば良いです。
array( ‘contact-me’, ‘contact-me-2’, ‘contact-me-3’と。
以上、備忘録でした。