2013年07月20日

Contact form7のjsを表示しないようにする

WPのプラグイン、Contact form7を使用するとすべてのページにjqueryとContact form7で使われるjsファイルとcssファイルが読み込まれてしまいます。
jqueryは重いので使用しないページには使わないほうがページの表示速度も速くなる(に違いない…)。

Contact form7のjsとcssを読み込まないようにする方法。

1.wp-config.phpに記述

wp-config.phpに記述
/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */
という一文よりも上に記述する。

//cotanct form 7 のjs,cssをロードしない
define ('WPCF7_LOAD_JS', false);
define('WPCF7_LOAD_CSS', false);
/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */

2.ヘッダーに記述

Contact form7を読み込みたいページのヘッダーのwp_head()よりも上に記述。

header.phpに記述

if ( function_exists( 'wpcf7_enqueue_scripts' ) ) {
wpcf7_enqueue_scripts();
wpcf7_enqueue_styles();
}

例えば、固定ページのIDが7のページのみだけ読み込みたい場合は下記のように記述。

header.phpに記述

if (is_page('7')) {
   if ( function_exists( 'wpcf7_enqueue_scripts' ) ) {
       wpcf7_enqueue_scripts();
       wpcf7_enqueue_styles();
   }
}

もしくは

if (is_page('7')) {
   wpcf7_enqueue_scripts();
   wpcf7_enqueue_styles();
}

2つ目の方法だとプラグインを無効化したときにエラーになる可能性があるので注意。

参考サイト
[WordPress]Contact form 7 のjsやcssを干渉させないように、特定ページだけにロードさせる