Changer le prefix des tables wordpress

Voici la procédure pour changer le préfix d’une installation WordPress existante (par défaut, il vaut ‘wp_’).

Prenons par exemple, un schema test sur lequel se trouve les tables, et que l’on veut changer le préfix wp_ en monPrefix_,  la requête SQL suivante permet de générer les alters requis:

1
SELECT CONCAT('RENAME TABLE ', GROUP_CONCAT('`', TABLE_SCHEMA, '`.`', TABLE_NAME, '` TO `', TABLE_SCHEMA, '`.`monPrefix_', SUBSTR(TABLE_NAME,4), '`')) AS q FROM `information_schema`.`Tables` WHERE TABLE_SCHEMA='test';

Ensuite, ouvrir wp-config.php et modifier la valeur de la variable : $table_prefix en ‘monPrefix_‘.

On pourrait croire que les étapes ci-dessus sont suffisantes, mais au moment d’accéder à la console d’administration, le message suivant apparaît:

Vous n’avez pas les droits suffisants pour accéder à cette page

Il faut encore modifier les valeurs en base de donnée qui sont basées sur ce préfix :

  • dans la table wp_options, pour la ligne la ligne dont le champ option_name vaut wp_user_roles , il faut le modifier en monPrefix_user_roles
  • de même, dans la table wp_usermeta, il faut changer le prefix de toute les lignes ayant comme valeur de champ meta_key les valeurs suivantes :
    • wp_autosave_draft_ids,
    • wp_capabilities,
    • wp_usersettings,
    • wp_usersettingstime 

    deviennent :

    • monPrefix_autosave_draft_ids,
    • monPrefix_capabilities,
    • monPrefix_usersettings
    • monPrefix_usersettingstime 

About Ludovic

Ingénieur en informatique dipl. EPFL
Cette entrée a été postée dans la catégorie Coding, PHP et taggée , . Ajouter le permalink aux favoris.

Comments are closed.