使用する必要があるページだけにスクリプトをエンキューしても問題ありませんか。 functions.php
とは対照的に?
または、ベストプラクティスは何ですか?この例では、私は自分のサイトのフロントページにローテーターが必要です。
そして、私がそれをページにエンキューするならば、それを置くための最良の場所はありますか?
Functions.phpに行きます。
この関数を呼び出すにはwp_enqueue_scriptsアクションを使用し、管理者側で呼び出すにはadmin_enqueue_scriptsを使用してください。アクションの外側でそれを呼び出すと、問題が発生する可能性があります。詳細は#11526を見てください。
出典: http://codex.wordpress.org/Function_Reference/wp_enqueue_script
function themename_load_js() {
if ( is_admin() ) {
return;
}
if is_page( 123) { // Replace 123 with your page's ID.
wp_enqueue_script( 'jquery' );
wp_enqueue_script( 'rotator-js', get_template_directory_uri() . '/js/rotator.js', array ( 'jquery' ) );
wp_enqueue_script( 'rotator-init-js', get_template_directory_uri() . '/js/rotator-init.js', array ( 'jquery', 'rotator-js' ) );
}
}
add_action( 'wp_print_scripts', 'themename_load_js' );
編集:ボーナスのヒント:関数内でページIDをハードコーディングするのではなく、このようなことをする必要があるときはいつでも、オプションページを作成し、wp_dropdown_pages()への呼び出しを追加するフロントページを使用していると言ったので、ページIDをチェックするのではなく、おそらく関数内で is_front_page() を利用できます。クリーナー。
これは今私にとって絶対に働いています:
add_action('get_header', function() {
if(is_page('566')) {
function sp_enqueue_script() {
wp_enqueue_script(
'sp-custom-script',
get_stylesheet_directory_uri() . '/assets/js/sp_script.js',
array( 'jquery' ), '1.0', true
);
}
add_action( 'wp_enqueue_scripts', 'sp_enqueue_script' );
}
});
- is_pageはメインクエリがまだロードされていないため、functions.phpでは機能しません。負荷。
wp_enqueue_script
フックの最後のブール値は、スクリプトがフッターにエンキューされるため、より高速に実行されます。