【WordPress】contact form 7の読み込みを不必要なページで行わない方法

【WordPress】contact form 7の読み込みを不必要なページで行わない方法

2017年7月10日

Contact Form 7は全世界のWordPressユーザーから圧倒的に支持されているプラグインですが、有効化するとすべてのページでContact Form 7用の JavaScriptと CSSファイルが読み込まれることになります。

ただ、多くのサイトにおいてContact Form 7はお問合せページだけで使われており、それ以外のページで読み込ませると不必要なhttpリクエストを発生させることになります。

スマホからのアクセスが50%を超えるサイトが多くなった現在、そのような無駄なhttpリクエストは表示速度の低下につながります。

それを改善するための方法が下記になります。

contact form 7を不必要なページで読み込みしないためのコード

functions.phpに、下記のコードを追記します。

//for contact-form-7 load
function my_contact_enqueue_scripts(){
wp_deregister_script('contact-form-7');
wp_deregister_style('contact-form-7');
    if (is_page('contact')) {
        if ( function_exists( 'wpcf7_enqueue_scripts' ) ) {
            wpcf7_enqueue_scripts();
        }
        if ( function_exists( 'wpcf7_enqueue_styles' ) ) {
            wpcf7_enqueue_styles();
        }
    }
}
add_action( 'wp_enqueue_scripts', 'my_contact_enqueue_scripts');

上記コードの内容

意味としては、
1.「contact」というスラッグのページ以外はContact Form 7のJavaScriptと CSSファイルを読み込ませない。
2.なおかつ、wpcf7_enqueue_scripts とwpcf7_enqueue_styles が有効化されている場合のみ(つまりContact Form 7有効化されている場合)、読み込みを実行する

ということになります。

上記コードを使ううえでの注意点

Contact Form 7を正常に使うためには、お問合せ等のページに必ず「contact」というスラッグをつけることに注意してください。
もし「contact」というスラッグを使用していない場合は、上記のコード中の「is_page(‘contact’)」という部分の「contact」という引数を、現在使用中のスラッグに変更してやればいいです。