私はこのようなスクリプトをロードしています:
//load scripts
//wp_register_script( $handle, $src, $deps, $ver, $in_footer );
add_action('wp_enqueue_scripts', 'load_scripts');
function load_scripts() {
if (!is_admin()) {
wp_register_script('modernizr', get_bloginfo('template_directory') .'/scripts/modernizr-latest.js',false);
wp_enqueue_script('modernizr');
wp_enqueue_script('jquery', true );
wp_register_script('cookie',get_bloginfo('template_directory') . '/scripts/cookie.js', array('jquery'), '1.0',true);
wp_enqueue_script('cookie');
wp_register_script( 'Gmaps', 'http://maps.google.com/maps/api/js?sensor=false', true );
wp_enqueue_script ('Gmaps');
wp_register_script('plugins', get_bloginfo('template_directory') .'/scripts/plugins.js',true);
wp_enqueue_script('plugins');
wp_register_script( 'maps_scripts', get_bloginfo('template_directory') . '/scripts/maps.js', array('Gmaps'), '1.0', true );
wp_enqueue_script ('maps_scripts');
wp_register_script('history', get_bloginfo('template_directory') .'/scripts/history.js', array('jquery'), '1.0',true);
wp_enqueue_script('history');
}
}
これにより、modernizr以外のすべてのスクリプトがフッターにロードされることを期待しています。代わりに、それは間違ったmish-mashです。この例から、jquery、google maps、およびplugins.jsは、$in_footer
がtrueに設定されていてもヘッダーにロードされます。予想どおり、Cookie、マップ、および履歴がフッターにロードされます。
誰かが私にこれを説明するのを手伝ってもらえますか?
ソリューションに入る前の注意点として、get_template_directory_uri()
はフィルターされた出力であるため、get_bloginfo()
よりも優先されます。とは言っても、修正したコードでは、そのままにしておく理由があった場合に入力を省くために、そのままにしておきました。
あなたの問題は、いくつかのパラメータを無視していることです。括弧の前のパラメータは最後のパラメータではなく、常に左からカウントされるため、多くの場合、$ver
をtrue
に設定します。 $in_footer
からtrue
ではなく。また、jqueryをエンキューする必要はありません。これは自動的に実行されますが、とにかくそれを実行しても害はありません。
add_action( 'wp_enqueue_scripts', 'load_scripts ');
function load_scripts() {
if ( !is_admin() ) {
wp_enqueue_script( 'jquery' );
wp_register_script( 'modernizr', get_bloginfo( 'template_directory' ) .'/scripts/modernizr-latest.js' );
wp_enqueue_script( 'modernizr' );
wp_register_script( 'cookie', get_bloginfo( 'template_directory' ) . '/scripts/cookie.js', array( 'jquery' ), '1.0', true );
wp_enqueue_script( 'cookie' );
wp_register_script( 'Gmaps', 'http://maps.google.com/maps/api/js?sensor=false', array(), false, true );
wp_enqueue_script ( 'Gmaps' );
wp_register_script( 'plugins', get_bloginfo( 'template_directory' ) .'/scripts/plugins.js', array(), false, true );
wp_enqueue_script( 'plugins' );
wp_register_script( 'maps_scripts', get_bloginfo( 'template_directory' ) . '/scripts/maps.js', array( 'Gmaps' ), '1.0', true );
wp_enqueue_script ( 'maps_scripts' );
wp_register_script( 'history', get_bloginfo( 'template_directory' ) .'/scripts/history.js', array( 'jquery' ), '1.0', true );
wp_enqueue_script( 'history' );
}
}
注: this は一見の価値がありますが、すべてを統一するのに役立ちます。個人的には、たとえそうである必要はないにしても、良い習慣の習慣として、コーディング標準にすべてを書き込もうとしています。