Soweit ich weiß, sollten Admin-Skripte registriert und über den admin_enqueue_scripts
Hook in die Warteschlange gestellt werden , und alle anderen Skripte unter. wp_enqueue_scripts
Daher habe ich die folgenden Funktionen eingerichtet, um alle meine Skripte klar und organisiert zu registrieren und in die Warteschlange zu stellen.
Meine Frage ist, was ist, wenn ich bestimmte Skripte (zB jquery validate plugin) sowohl im Admin als auch im Frontend benötige ? Was ist die empfohlene Methode zum Registrieren und Einreihen des Skripts in diesem Fall? Registrieren Sie es zweimal mit einem anderen $ -Handle oder registrieren Sie es wp_enqueue_scripts
nur durch. Wenn ja, besteht dann nicht die Gefahr, dass es bei Bedarf nicht aufgerufen wird? (Ich meine, warum sollte es sonst noch geben admin_enqueue_scripts
, wenn diese Skripte nicht zu einem früheren Zeitpunkt verfügbar wären ?
Ich würde mich sehr freuen, wenn mir jemand dies erklären würde, um die Nuancen des Einreihens von Skripten in wp vollständig zu verstehen. Vielen Dank
Mein 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( '' );
...
}
}