Si je comprends bien, les scripts d'administration sont censés être enregistrés et mis en file d'attente via le admin_enqueue_scripts
crochet et tous les autres scripts sur wp_enqueue_scripts
donc j'ai mis en place les fonctions suivantes pour enregistrer et mettre en file d'attente tous mes scripts de manière claire et organisée.
Ma question est, que se passe-t-il si j'ai besoin de certains scripts (par exemple, le plugin de validation jquery ) à la fois dans l'administration et sur le front-end? quelle est la méthode recommandée pour l'enregistrement et la mise en file d'attente du script dans ce cas? enregistrez-le deux fois avec une poignée $ différente ou enregistrez-le wp_enqueue_scripts
uniquement et si oui, n'y a-t-il pas le risque qu'il ne soit pas appelé en cas de besoin? (Je veux dire, pourquoi d'autre existerait- admin_enqueue_scripts
il si ce n'était de rendre ces scripts disponibles plus tôt?
J'apprécierais vraiment que quelqu'un m'explique cela pour bien comprendre les nuances de la mise en file d'attente des scripts dans wp. Merci
Mon code:
// 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( '' );
...
}
}
la source