WordPress : le message d’erreur au sujet de la constante $table_prefix

Le 12 mai 2021

À la création d’un blogue, WordPress fournit à l’auteur tout le code informatique dont il aura besoin pour opérer son blogue. Ce qui lui permet de publier ses textes sans se soucier de la machinerie logicielle sous-jacente.

Cette machinerie utilise un langage de programmation appelé PHP. Or il arrive que son évolution rende un vieux code inopérant.

Parmi les dizaines de milliers de lignes de code créées par les programmeurs de WordPress, tout ce qui distingue le moteur d’un blogue du moteur d’un autre blogue, c’est la valeur attribuée à une variable appelée $table_prefix.

Il y a deux jours, l’hébergeur de ce blogue avisait ses clients qu’à partir du mois prochain, il utiliserait par défaut la version 7,4 du PHP et que tous les blogues qui utilisent des versions antérieures devront y être compatibles.

Jusqu’à maintenant, toutes mes tentatives de migrer vers une version de PHP supérieure à la version 7,1,33 provoquaient un message d’erreur qui apparaissait entre l’entête du blogue et la page web affichée. Ce message se lisait comme suit :

Warning: Use of undefined constant wp_XXXXXXXX_ – assumed ‘wp_XXXXXXXX_’ (this will throw an Error in a future version of PHP)
in /home/jpmartel.quebec/wp-config.php on line 61.

Dans ce cas-ci, XXXXXXXX est un numéro à huit chiffres qui correspond aux premiers caractères du nom de chacune des tables qui composent la base de données de mon blogue.

Or la ligne 61 du fichier wp-config.php disait :
$table_prefix = wp_XXXXXXXX_;

Par expérience, je sais qu’un code de programmation est extrêmement délicat et qu’il suffit d’oublier la moindre chose (une virgule, par exemple) pour bousiller un programme informatique.

Je m’étais donc résolu à contacter une firme de programmeurs pour leur demander de corriger le code PHP de mon blogue, en soupçonnant que cela me couterait une fortune.

L’avarice étant parfois bonne conseillère, j’ai décidé, avant de contacter des programmeurs, de voir s’il n’y avait pas moyen de trouver sur l’internet la solution à mon problème.

Je n’ai rien trouvé d’identique, mais plusieurs messages qui lui ressemblaient.

J’ai cru comprendre que les nouvelles versions du PHP exigent que la valeur de toutes les constantes soit déclarée entre des guillemets. Et pour être précis, entre des guillemets droits (comme en anglais).

Donc j’ai changé le texte de la ligne 61 de…

Or il s’est avéré que c’était exactement ce qu’il fallait faire.

Non seulement la version 7,1,33 du PHP n’y voit pas d’objection, mais les versions ultérieures non plus.

En résumé, le code informatique que WordPress remettrait autrefois aux nouveaux blogueurs contient une ligne qui est devenue incompatible avec les versions les plus récentes du PHP.

Aussi intimidante que soit la programmation informatique pour un novice, le changement à apporter — délicat il est vrai — est relativement simple.

Avez-vous aimé ce texte ?

Prière de choisir un nombre d’étoiles.

Moyenne : 0 / 5. Nombre de votes : 0

Soyez la première personne à voter.

2 commentaires à WordPress : le message d’erreur au sujet de la constante $table_prefix

  1. sandy39 dit :

    Comment ça, un blogue, ça s’opère ?

    Je suppose que le langage utilisé dans cette machinerie doit être assez compliqué… vu qu’il vous est arrivé, en plusieurs fois, de perdre certains commentaires…

    • Jean-Pierre Martel dit :

      Oui, un blogue s’opère comme on opère une machinerie. Derrière la liste de textes que vous consultez, il y a une machinerie logicielle dont le propriétaire d’un blogue doit s’occuper.

      Ceci étant dit, permettez-moi de nuancer vos propos.

      En janvier 2020, à l’occasion d’une panne, trois commentaires ont été perdus… temporairement.

      Dès le lendemain, je les avais reconstitués à partir de la copie qui accompagne l’avis que je reçois personnellement chaque fois qu’un commentaire est publié.

      Si bien qu’à ce jour, aucun des précieux commentaires publiés ici n’a été perdu…

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

>