web-dev-qa-db-fra.com

Ajout de scripts sur les pages d'ajout/modification postérieures personnalisées

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:

Vérifiez mes codes Js et HTMl

1
Yassine Qoraiche

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' );
  • J'ai utilisé le hook admin_enqueue_scripts pour appeler notre fonction afin de mettre le script en file d'attente au bon moment pour la zone d'administration.
  • J'utilise l'objet $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'.
  • Enfin, j'utilise 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

3
Seamus Leahy