j'essaie d'ajouter des scripts sur des pages d'ajout/modification personnalisées, mais ne fonctionne pas
PHP Code, (ça marche et Get Js Code)
if(strstr($_SERVER['REQUEST_URI'], 'wp-admin/post-new.php') || strstr($_SERVER['REQUEST_URI'], 'wp-admin/page-new.php')) {
wp_enqueue_script('myscript', 'http://exemple.com/wp-content/themes/theme/js/rt_api.js');
Le problème est que le code Js ne donne pas de résultat:
Il y a quelques choses que vous voudrez faire pour vous faire inclure le travail et en général mieux. Voici le code complet:
function my_theme_enqueue_admin_scripts() {
$screen = get_current_screen(); // This is how we will check what page we are on
if ( in_array( $screen->id, array( 'post', 'page') ) && $screen->action == 'add' ) {
// Use get_template_directory_uri so we don't need to hardcode the URL to our theme folder
wp_enqueue_script('myscript', get_template_directory_uri().'/js/rt_api.js');
}
}
// This action will call your function at the right time to enqueue your script for the admin area
add_action( 'admin_enqueue_scripts', 'my_theme_enqueue_admin_scripts' );
admin_enqueue_scripts
pour appeler notre fonction afin de mettre le script en file d'attente au bon moment pour la zone d'administration.$screen
créé par WordPress pour la zone d'administration afin de signaler la page actuellement affichée. Il a un tas d'attributs sur elle. Dans notre cas, je vérifie $screen->id
pour savoir s'il s'agit de 'post'
ou 'page'
et $screen->action
pour s'il s'agit de 'add'
.get_template_directory_uri()
pour obtenir l'URL du dossier du thème. De cette façon, nous pouvons utiliser notre thème sur n’importe quelle configuration WordPress sans casser l’URL.Utiliser jQuery dans votre script
Lorsque vous utilisez jQuery dans vos scripts, vous ne pouvez pas utiliser le $
dès le départ, car la version de jQuery fournie avec WordPress désactive le raccourci $
pour jQuery
. En effet, à l’époque, il est courant que plusieurs bibliothèques Javascript utilisent $
.
Vous avez deux options dans votre Javascript pour utiliser jQuery.
La première consiste à utiliser jQuery
au lieu de $
:
jQuery('#my-id').on('click', function() {} );
La seconde consiste à envelopper le code de votre script dans une fonction d'appel automatique. Vous allez passer jQuery
en paramètre, puis nous nommerons l'argument $
:
(function( $ ) {
// your code here
})( jQuery );
Astuces de débogage
assurez-vous que votre 'myscript' est imprimé en consultant la source de la page
vérifier que l'URL imprimée est correcte (il est facile d'avoir une faute de frappe)
assurez-vous que le Javascript n'est pas sans erreurs
est un autre script utilisant également le handle myscript
créant un conflit