Насколько я понимаю, административные сценарии должны регистрироваться и ставиться в очередь через admin_enqueue_scripts
хук и все остальные сценарии, wp_enqueue_scripts
поэтому я настроил следующие функции для регистрации и постановки в очередь всех моих сценариев в понятной и организованной форме.
Мой вопрос: что если мне нужны определенные скрипты (например, плагин jquery validate ) как в админке, так и во внешнем интерфейсе? Каков рекомендуемый метод для регистрации и постановки в очередь сценария в этом случае? зарегистрируйте его дважды, используя другой дескриптор $, или зарегистрируйте wp_enqueue_scripts
только через него, и если да, то существует ли риск, что он не будет вызван при необходимости? (Я имею в виду, почему бы еще 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( '' );
...
}
}
источник