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' );
}