WordPress

Contact Form 7のページ以外でJavaScriptとCSSを止める方法

Contact Form 7を利用すると、全てのページにContact Form 7が利用するJavaScriptやCSSがロードされます。

Contact Form 7を使って無いページにまで関連するJavaScriptやCSSを使うのは、速度低下にも繋がるので避けたいところ。

関連するJavaScriptやCSSのロードを実際にContact Form 7を使用しているページのみ限定にします。

Contact Form 7が5.4にアップデート後に仕様が変更されましたので、それまでの記述方法が無効となりました。
最新の5.4以降と旧バージョンの5.3.2以前と両方の記述方法を載せておきます。

下記コード例は、Contact Form 7を利用しているページが固定ページで、スラッグが『inquiry』の場合です。

環境に合わせてお使いのテーマのfunctions.phpなどに追加します。

※スラッグとはパーマリングで変更出来るページのURLです※

5.4~

add_action( 'wp_enqueue_scripts', function() {
	if( !is_page('inquiry') ){
	  wp_dequeue_style( 'contact-form-7' );
	}
});
add_action( 'wp_footer', function() {
	if( !is_page('inquiry') ){
	  wp_deregister_script( 'contact-form-7' );
	  wp_deregister_script( 'google-recaptcha' );
	}
});

5.3.2以前

add_action( 'wp_enqueue_scripts', function() {
	if( !is_page('inquiry') ){
	  wp_dequeue_style( 'contact-form-7' );
	  wp_deregister_script( 'contact-form-7' );
	  wp_deregister_script( 'google-recaptcha' );
	}
});

上記コードでContact Form 7が利用するGoogleのreCAPTCHAも同時に止められます。

複数のページで使用している場合は下記の様なコードになります。

5.4~

add_action( 'wp_enqueue_scripts', function() {
	if( !is_page( array( 'inquiry','inquiry2','inquiry3','inquiry4' ) ) ){
	  wp_dequeue_style( 'contact-form-7' );
	}
});
add_action( 'wp_footer', function() {
	if( !is_page( array( 'inquiry','inquiry2','inquiry3','inquiry4' ) ) ){
	  wp_deregister_script( 'contact-form-7' );
	  wp_deregister_script( 'google-recaptcha' );
	}
});

5.3.2以前

add_action( 'wp_enqueue_scripts', function() {
	if( !is_page( array( 'inquiry','inquiry2','inquiry3','inquiry4' ) ) ){
	  wp_dequeue_style( 'contact-form-7' );
	  wp_deregister_script( 'contact-form-7' );
	  wp_deregister_script( 'google-recaptcha' );
	}
});

‘inquiry’,’inquiry2′,’inquiry3′,’inquiry4’の部分をお使いの環境に合わせて変更してください。