jQuery est une bibliothèque JavaScript sur laquelle s’appuient beaucoup de thèmes et d’extensions. Ce message, visible dans la console du navigateur, signifie qu’un script en a eu besoin avant qu’elle soit chargée, ou qu’il l’appelle par le raccourci $ que WordPress ne fournit pas. Le texte de la page s’affiche, mais menus, carrousels, formulaires ou fenêtres surgissantes cessent de répondre.
Pourquoi cette erreur apparaît
- Une extension d’optimisation (WP Rocket, LiteSpeed Cache, Autoptimize…) diffère, retarde ou regroupe les scripts, si bien que jQuery arrive après ceux qui en dépendent.
- Un script ajouté à la main, dans le thème ou par une extension d’insertion de code, utilise jQuery sans le déclarer comme dépendance, ou se trouve placé avant lui.
- Le code utilise $ : WordPress charge jQuery en mode noConflict, où seul le nom jQuery est disponible.
- Une seconde copie de jQuery, chargée par un thème ou une extension, remplace la première et fait disparaître les modules déjà branchés dessus.
- Le module jQuery attendu (carrousel, galerie, sélecteur de date) n’est pas chargé sur cette page, ou son fichier est introuvable.
Comment corriger le problème
Lire l’erreur dans la console
Ouvrez la page concernée, appuyez sur F12 (ou clic droit, Inspecter) puis choisissez l’onglet Console. Repérez la première ligne rouge : le lien à sa droite indique le fichier qui a échoué, et son chemin désigne souvent l’extension ou le thème.
Neutraliser l’optimisation JavaScript
Videz le cache de l’extension d’optimisation, puis désactivez un à un ses réglages JavaScript : chargement différé, exécution retardée, regroupement des fichiers. Si l’erreur disparaît, réactivez-les en excluant jquery.min.js et les scripts qui en dépendent.
Isoler l’extension responsable
Désactivez les extensions une à une en rechargeant la page à chaque fois, sur une copie du site si possible. L’extension Health Check & Troubleshooting propose un mode de dépannage qui fait ces essais pour votre seule session, sans rien changer pour les visiteurs.
Contrôler le code ajouté à la main
Passez en revue les scripts collés dans les réglages du thème, dans une extension d’insertion de code ou dans un widget HTML. Un appel à jQuery placé dans l’en-tête, avant le chargement de la bibliothèque, suffit à déclencher l’erreur.
Déclarer jQuery et protéger le $
Enregistrez votre script avec jQuery comme dépendance, de préférence en pied de page, et entourez votre code d’une fonction qui reçoit $ : il fonctionne alors même en mode noConflict.
// functions.php du thème enfant
add_action( 'wp_enqueue_scripts', function () {
wp_enqueue_script( 'menu-mobile', get_stylesheet_directory_uri() . '/js/menu.js', array( 'jquery' ), '1.0', true );
} );
// js/menu.js
jQuery( function ( $ ) {
$( '.menu-toggle' ).on( 'click', function () {
$( '.menu-mobile' ).toggleClass( 'ouvert' );
} );
} );
Sauvegardez les fichiers du thème avant de les modifier et travaillez dans un thème enfant ; videz tous les caches (extension, hébergeur, navigateur) après chaque essai pour tester la bonne version.
Un autre message d'erreur ? Collez-le dans le décodeur : il le reconnaît et vous oriente vers la bonne fiche.
Ouvrir le décodeur