J'essaie de charger mon script personnalisé dans le panneau d'administration à l'aide de la même méthode que celle utilisée par WordPress pour charger les scripts dans la zone d'administration.
Voici un exemple de script chargé par wp-includes/script-loader.php
:
$scripts->add(
'password-strength-meter',
"/wp-admin/js/password-strength-meter$suffix.js",
array( 'jquery', 'zxcvbn-async' ),
false,
1
);
J'ai donc essayé d'ajouter mon propre script par la même méthode. JE :
user-profile-validator.js
dans /wp-admin/js/
(a également créé une version détaillée)$scripts->add(
'user-profile-validator',
"/wp-admin/js/user-profile-validator$suffix.js",
array( 'jquery' ),
false,
1
);
Mais rien ne s'est passé, ce n'est ni ajouté à l'URL, ni je peux trouver mon script parmi les scripts chargés.
Pourquoi cela arrive-t-il?
PS: Je fais un patch, c'est pourquoi je modifie les fichiers core.
Je pense que vous êtes seulementvous enregistrezil avec:
$scripts->add( 'user-profile-validator', ...)
mais pasmise en file d'attenteit.
Vérifiez par exemple comment wp_register_script()
est un wrapper pour la méthode WP_Scripts::add()
.
Ajoutez en plus:
wp_enqueue_script( 'user-profile-validator' );
dans le fichier admin approprié pour le mettre en file d'attente ou pour l'ajouter en tant quedependencyà un autre script mis en file d'attente.
Notez que password-strength-meter
est une dépendance du script user-profile
:
$scripts->add(
'user-profile',
"/wp-admin/js/user-profile$suffix.js",
array( 'jquery', 'password-strength-meter', 'wp-util' ),
false,
1
);
c'est mis en file d'attente avec:
wp_enqueue_script( 'user-profile' );
dans le backend.