C’est l’avis « doing it wrong » de WordPress : une extension ou un thème a utilisé une fonction de WordPress au mauvais moment ou de la mauvaise façon. Le nom de la fonction suit « Function », et la phrase d’après explique la règle enfreinte. Le site fonctionne en général : ce message, visible seulement quand le débogage est actif, s’adresse au développeur.
Pourquoi cette erreur apparaît
- Une extension ou le thème appelle une fonction trop tôt, avant que WordPress soit prêt : scripts ajoutés hors des crochets prévus, balises conditionnelles comme is_singular() utilisées avant la requête.
- Les arguments transmis ne respectent pas les règles : requête wpdb::prepare() sans marqueur, route de l’API REST sans permission_callback, données mal formées pour un script.
- Le code a été écrit pour une ancienne version de WordPress, qui a ajouté ce contrôle depuis.
- Le débogage (WP_DEBUG) est resté actif sur le site en ligne, ce qui rend l’avis visible à tous.
Comment corriger le problème
Lire la fonction et la règle enfreinte
La fonction citée (wp_enqueue_script, wpdb::prepare, register_rest_route…) et la phrase qui suit disent ce qui cloche. Le fichier mentionné à la fin, wp-includes/functions.php, est celui qui émet l’avis, pas le fautif. Cherchez plutôt un indice dans l’explication : un nom de script (« handle »), une route ou un identifiant qui rappelle une extension.
Mettre à jour, puis tester les extensions
Mettez à jour les extensions et le thème. Si l’avis demeure, désactivez les extensions une à une, de préférence sur une copie du site, jusqu’à ce qu’il disparaisse : la dernière désactivée est la responsable.
Nommer le coupable avec Query Monitor
L’extension gratuite Query Monitor regroupe ces appels dans un panneau « Doing it Wrong » et indique, pour chacun, l’extension ou le thème qui l’a déclenché. Désactivez-la une fois l’enquête terminée.
Garder l’avis hors de la vue des visiteurs
Pour conserver la trace de ces avis le temps que l’éditeur corrige, laissez le débogage actif mais sans affichage, avec un journal dans wp-content/debug.log. Remplacez les lignes existantes de wp-config.php plutôt que de les dupliquer : une constante définie deux fois provoque elle-même un avertissement. Quand l’avis a disparu, WP_DEBUG peut revenir à false.
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
Appeler la fonction au bon endroit
Pour votre propre code, la documentation de la fonction précise le crochet ou les arguments attendus. Le cas le plus fréquent, l’ajout de scripts et de feuilles de style, se règle en passant par le crochet wp_enqueue_scripts.
add_action( 'wp_enqueue_scripts', function () {
wp_enqueue_script(
'mon-slider',
get_stylesheet_directory_uri() . '/js/slider.js',
array( 'jquery' ),
'1.0',
true
);
} );
Sauvegardez wp-config.php avant de le modifier, et testez les désactivations d’extensions sur une copie du site si vous le pouvez, surtout pour une boutique en ligne.
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