私が理解しているように、管理スクリプトはadmin_enqueue_scripts
フックおよび他のすべてのスクリプトを介して登録およびエンキューされることになっているwp_enqueue_scripts
ので、すべてのスクリプトを明確かつ体系的な方法で登録およびエンキューするために次の関数を設定しました。
私の質問は、管理者とフロントエンドの両方で特定のスクリプト(jquery validateプラグインなど)が必要な場合はどうなりますか?この場合、スクリプトを登録およびエンキューするための推奨される方法は何ですか?wp_enqueue_scripts
異なる$ handleで2回登録するか、それだけで登録します。そうする場合、必要なときに呼び出されないというリスクはありませんか?(admin_enqueue_scripts
つまり、それらのスクリプトを以前に利用可能にしないのであれば、なぜ他に存在するのでしょうか?
wpでスクリプトをキューに入れることのニュアンスを完全に理解するために、誰かがこれを説明してくれることを本当に感謝します。ありがとう
私のコード:
// REGISTER ALL NON-ADMIN SCRIPTS
add_action( 'wp_enqueue_scripts', 'register_all_non_admin_scripts' );
function register_all_non_admin_scripts() {
wp_register_script( ... );
wp_register_script( ... );
}
// ENQUEUE NON-ADMIN SCRIPTS CONDITIONALLY
add_action( 'wp_enqueue_scripts', 'enqueue_scripts_where_required' );
function enqueue_scripts_where_required() {
// scripts to be loaded at all times
wp_enqueue_script( '' );
// scripts to be loaded conditionaly
if( is_page( '' ) ) {
wp_enqueue_style( '' );
}
}
// REGISTER ALL ADMIN SCRIPTS
add_action( 'admin_enqueue_scripts', 'register_all_admin_scripts' );
function register_all_admin_scripts(){
wp_register_script( ... );
wp_register_script( ... );
}
// ENQUEUE ADMIN SCRIPTS
add_action( 'admin_enqueue_scripts', 'enqueue_admin_contact_cpt_js' );
function enqueue_admin_contact_cpt_js(){
global $post_type;
// scripts to be loaded at all times
wp_enqueue_script( '' );
// scripts to be loaded conditionaly by post type
if( 'contact' == $post_type ){
wp_enqueue_script( '' );
...
}
}