Une requête envoyée à la base demande une colonne qui n’existe pas dans la table visée. Le message donne le nom de la colonne et l’endroit de la requête où elle apparaît : « field list » pour les champs lus, « where clause » pour un filtre ; certaines versions de MariaDB écrivent « SELECT » ou « WHERE ». En général, le code et la structure de la base ne sont plus à la même version.
Pourquoi cette erreur apparaît
- Une extension a été mise à jour, mais la mise à jour de sa base, qui ajoute les nouvelles colonnes, n’a pas abouti.
- Une extension a été remise à une version plus ancienne alors que la base avait déjà évolué, ou l’inverse.
- Une requête personnalisée (thème, extrait de code) contient une faute de nom ou oublie de joindre la table qu’elle utilise, comme wp_postmeta.
- La base a été restaurée depuis une sauvegarde plus ancienne que les fichiers du site.
Comment corriger le problème
Identifier la table et l’extension
Le nom de la colonne, et surtout la table citée dans la requête qui suit, désignent l’auteur : wp_posts ou wp_postmeta pointent vers une requête de thème ou d’extension, une table au nom particulier vers l’extension qui l’a créée. Dans le journal, la partie « made by » liste les fonctions appelées, où figure souvent le nom de l’extension.
Relancer la mise à jour de la base de l’extension
Après une nouvelle version, beaucoup d’extensions affichent dans l’administration un bandeau qui propose de mettre leur base à jour : lancez-le. À défaut, désactivez puis réactivez l’extension, ce qui déclenche souvent cette étape.
Remettre fichiers et base à la même version
Si vous avez restauré la base seule, ou les fichiers seuls, les deux ne correspondent plus. Restaurez l’ensemble depuis la même sauvegarde, ou réinstallez la version de l’extension qui correspond à la base.
Comparer avec la structure attendue
Affichez les colonnes de la table pour voir ce qui manque. Pour une requête personnalisée qui filtre sur wp_postmeta, la jointure avec cette table doit figurer dans la requête ; avec WP_Query, passez plutôt par le paramètre meta_query, qui construit la jointure tout seul.
SHOW COLUMNS FROM wp_postmeta;
Exportez la base avant de relancer une mise à jour de structure, et ne créez pas de colonne à la main sans connaître le type attendu par l’extension.
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