- Statut : non résolu
- Ce sujet contient 24 réponses, 3 participants et a été mis à jour pour la dernière fois par Oric, le il y a 11 années et 6 mois.
-
AuteurMessages
-
4 juillet 2013 à 15 h 07 min #526047
Bonjour,
Ma configuration WP actuelle
– Version de WordPress : 3.5.2
– Version de PHP/MySQL : 5.3.8 / 5.5.16
– Thème utilisé : Swatch (WooThemes) (modifié via un thème enfant)
– Extensions en place : WooSidebars
– Nom de l’hebergeur : en local (Wampserver)
– Adresse du site : /Problème(s) rencontré(s) :
Bonjour à tous,
Après avoir cherché en vain une solution à mon problème depuis hier, je rejoins votre communauté pour demander votre aide.
Je créé actuellement un site avec le thème Swatch (je travaille sur un thème enfant de Swatch 1.5.1), que j’ai choisi pour son effet slider en page d’accueil. J’ai également installé un effet javascript « accordéon » dans une autre page. J’ai intégré les différents scripts nécessaires à l’accordéon grâce à wp_enqueue_script dans mon fichier functions.php, ce qui fait que les scripts nécessaires à l’effet accordéon sont chargés sur tout le site et cela créé un conflit avec le slider de la page d’accueil, qui ne fonctionne plus.
Comme je n’ai pas besoin des scripts « accordéon » sur la page d’accueil j’ai donc cherché à limiter leur chargement à la page concernée, mais cela ne fonctionne pas : les scripts « accordéon » ne sont alors plus chargés du tout. Voici le code correspondant dans mon fichier functions.php :function monaccordeon(){
wp_enqueue_script ( ‘jquery.min’, ‘http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js’, », »,true );
wp_enqueue_script ( ‘jquery.accordion’, ‘http://localhost/monsite/wp-content/themes/swatch-child/js/jquery.accordion.js’, », »,true );
wp_enqueue_script ( ‘jquery.easing.1.3’, ‘http://localhost/monsite/wp-content/themes/swatch-child/js/jquery.easing.1.3.js’, », »,true );
wp_enqueue_script (‘function-accordion’, ‘http://localhost/monsite/wp-content/themes/swatch-child/js/function-accordion.js’, », »,true );}
if ( is_page( 351 ) ) {
add_action(‘init’,’monaccordeon’);
}J’ai essayé également d’exclure la page d’accueil avec if ( !is_home ) {
… mais ça ne fonctionne pas non plus (les scripts ne sont pas chargés)J’ai peu de connaissance en php et j’utilise WordPress depuis peu, aussi il y a fort à parier que j’ai fait une erreur quelque part. Pouvez-vous éclairer ma lanterne ? Est-ce que c’est une bonne idée de chercher à charger les scripts sur une page précise ou bien dois-je chercher une autre solution ?
Un grand MERCI par avance pour vos conseils et votre aide !
4 juillet 2013 à 15 h 38 min #901693Vous pouvez utiliser
http://codex.wordpress.org/Function_Reference/wp_register_script pour déclarer tous vos script sans les charger sur une page précise.
A l’appel, vous faites<?php
if ( is_page( 351 ) ) {
wp_enqueue-script('mon_script',….);
}4 juillet 2013 à 17 h 22 min #901694Merci pour votre réponse rapide mais à vrai dire je n’ai pas tout compris…:oops:. J’ai essayé d’adapter le code mais ça ne fonctionne toujours pas. Je ne l’ai peut-être pas mis là où il fallait…
function monaccordeon() {
wp_register_script ( ‘jquery.min’, ‘http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js’, », »,true );
if ( is_page( 351 ) ) {
wp_enqueue_script ( ‘jquery.min’ );
}
}
add_action(‘init’,’monaccordeon’);Ou alors le problème vient d’ailleurs ? Pour faire un test, j’ai créé une fonction de débuggage avec un pour vérifier que mes fonctions passent bien :
function mydebugmode(){
echo ‘HELLO THERE !’;
}
if ( !is_admin()) {
add_action(‘init’,’mydebugmode’);
}Ca fonctionne avec et … et c’est tout ! Pas de résultat avec is_page(), is_page ( 351 ) (j’ai bien vérifié dans l’adresse et l’ID est bien celle-là), is_home, ou is_front_page ! Est-ce normal et est-ce que ça a un lien avec ma difficulté à charger le script sur une seule page ?
Si quelqu’un a une idée, ce serait super ! 🙂
4 juillet 2013 à 17 h 29 min #901695Il est inutile de faire un appel a add_action, faites directement :
wp_register_script ( ‘jquery.min’, ‘http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js’, », »,true );
if ( is_page( 351 ) ) {
wp_enqueue_script ( ‘jquery.min’ );
}4 juillet 2013 à 17 h 40 min #901696Rien à faire ! Le script refuse de se charger quelle que soit la page dès qu’il y a la condition « if ( is_page( 351 ) ) » !
4 juillet 2013 à 17 h 57 min #901697C’est peut-être, mais je n’en suis pas certain, un problème venant des arguments vides par défauts ?
essayez : wp_register_script ( ‘jquery.min’, ‘http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js’,false,false,true );4 juillet 2013 à 17 h 59 min #901698Oups, non, plutôt
wp_register_script ( ‘jquery.min’, ‘http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js’,array(),false,true );
4 juillet 2013 à 18 h 07 min #901699Malheureusement, ça ne fonctionne toujours pas.
4 juillet 2013 à 18 h 08 min #901700Ce lien est-il valide ?
http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js4 juillet 2013 à 18 h 25 min #901701Oui, il est bien valide. J’arrive par ailleurs à faire fonctionner le script « accordéon » sans problème sur la page où je l’ai installé… mais dans ce cas-là c’est le slider de l’accueil qui ne fonctionne pas (et vice-versa). C’est pour ça que j’aurais aimé pouvoir charger le script sur une page spécifique : j’ai deux scripts qui fonctionnent indépendamment l’un de l’autre, qui ne sont pas sur la même page mais qui rentrent en conflit malgré tout. C’est assez frustrant…
Merci en tout cas pour votre aide.
4 juillet 2013 à 18 h 42 min #901702est-ce que le wp_enquue-script fonctionne sans le test is_page ,
5 juillet 2013 à 9 h 07 min #901703Re-bonjour 🙂
Oui, le « wp_enqueue_script » fonctionne sans le « is_page ». Donc j’arrive bien à charger mes scripts pour tout le site WordPress mais pas pour une page précise.
5 juillet 2013 à 9 h 38 min #901704Etes-vous certain alors que le numero 351 soit le bon ?
5 juillet 2013 à 9 h 42 min #901705Voici l’adresse de la page donc a priori c’est bien ça, non ?
http://localhost/monsite/?page_id=3515 juillet 2013 à 9 h 50 min #901706Oui, c’est le bon numéro, c’est donc que vous insérez le code dans le mauvais fichier !
vous l’insérez où ? -
AuteurMessages
- Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.