contact form7のjsとcssをcontactページにのみ読み込む
2015年9月30日
取り合えずググって出てきたものでは”Notice”がでたので以下のものに変更。
これで特に問題無しだったが某クライアントさんのトップページでjQueryが読み込まれない現象になった。
以下ふたとおりのやり方ではダメだったので探してみた結果、一番下のコードで回避できた。
結局最下部のコードではwpcf7関連のファイルは排除されず残っていたので、原因不明。
他のクライアントさんサイトでは問題なかったが、なぜか某クライアントさんのみjqueryが読み込まれない。
最終手段としてFunctions.phpに
wp_enqueue_scripts(‘jquery’);
をto-pageに読み込ませて対応。原因はっきりしないのがイヤな感じ。
// contact form 7 のファイルを必要な場合のみ読み込む function wpcf7_file_control() { add_filter("wpcf7_load_js", "__return_false"); add_filter("wpcf7_load_css", "__return_false"); if( is_page("contact") ){ if( function_exists("wpcf7_enqueue_scripts") ) wpcf7_enqueue_scripts(); if( function_exists("wpcf7_enqueue_styles") ) wpcf7_enqueue_styles(); } } add_action("template_redirect", "wpcf7_file_control");
これでダメな場合もある。
さらに
/* wpcf7Scripts iclude only contact page */ function contact_form_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', 'contact_form_scripts');
でもダメだったので以下のコードを。
これで回避できた。
/* contact form 7 のファイルを必要な場合のみ読み込む */ function wpcf7_file_control() { add_filter("wpcf7_load_js", "__return_false"); add_filter("wpcf7_load_css", "__return_false"); } if ( $_SERVER['REQUEST_URI'] == "/contact/" ) { add_action( 'wp_enqueue_scripts', 'wpcf7_enqueue_scripts' ); add_action( 'wp_enqueue_scripts', 'wpcf7_enqueue_styles' ); }