web-dev-qa-db-fra.com

Ajout de Javascript personnalisé au thème Skeleton Child

J'essaie d'enregistrer et mettre en file d'attente ImageMapster dans mon thème Enfant squelette sur la page main.php pour créer une carte avec des effets de survol. J'ai ajouté ce code à la section "Fonctions d'en-tête" du fichier functions.php de mon thème enfant:

add_action( 'wp_enqueue_scripts', 'load_custom_js' );
function load_custom_js() {
    wp_register_script( 'jquery.imagemapster.js', 
    get_template_directory_uri() . '/javascripts/jquery.imagemapster.js', 
    array('jquery'), '1.2.6', false );

    if ( is_page('Main') ) {
    wp_enqueue_script( 'jquery.imagemapster.js', 
    get_template_directory_uri() . '/javascripts/jquery.imagemapster.js', 
    array('jquery'), '1.2.6', false );
    }
} 

Maintenant, mon site a cessé de fonctionner. Le fichier javascript étant situé dans le répertoire du thème parent, est-il correct d'utiliser get_template_directory_uri au lieu de get_stylesheet_directory_uri? Chaque thème a-t-il un endroit particulier où l’on devrait ajouter des fonctions personnalisées ou est-ce que j’ai raison de l’ajouter sous "Fonctions d’en-tête"? Toute aide serait appréciée.

3
jess

Un problème: si vous définissez le script dans une wp_register_script() comme ceci:

wp_register_script( 
    'jquery.imagemapster.js', 
    get_template_directory_uri() . '/javascripts/jquery.imagemapster.js', 
    array('jquery'), 
    '1.2.6', 
    false 
);

... alors il vous suffit de référencer le nom du script défini dans l'appel wp_enqueue_script(), comme suit:

wp_enqueue_script( 'jquery.imagemapster.js' );

Re-déclarer tous les paramètres dans wp_enqueue_script() ne devrait pas causer l'erreur fatale que vous décrivez; toutefois, cela pourrait avoir des conséquences inattendues (surtout si les déclarations ne correspondent pas entre wp_register_script() et wp_enqueue_script()).

2
Chip Bennett

Avez-vous essayé d'utiliser get_template_directory() ? Cela devrait en fait renvoyer le répertoire du thème parent lorsque est appelé à partir du fichier functions.php de votre thème enfant.

Par curiosité, le chemin du répertoire de votre thème enfant est-il renvoyé lorsque vous appelez get_template_directory_uri dès maintenant à partir de votre thème enfant?

0
Jared Cobb