Modifier vos préfixe WP

Avant tout

  • Sauvegardes complètes: fichiers + base (dump SQL).
  • Fenêtre de maintenance: activez un plugin “maintenance” ou mettez un maintenance.php.
  • Accès DB: phpMyAdmin, Adminer ou ligne de commande MySQL. Version MySQL/MariaDB ≥ 5.7 recommandée.

Cas A — Nouveau site (le plus simple)

Dans wp-config.php, modifiez:

$table_prefix = 'mz9x_';

Ensuite installez WordPress: toutes les tables seront créées avec ce préfixe.

Cas B — Site déjà installé (procédure pas-à-pas)

  1. Choisir un préfixe “alphanum + underscore”, 4–6 caractères aléatoires, par ex. mz9x_.
  2. Éditer wp-config.php:
$table_prefix = 'mz9x_';

Ne sauvegardez qu’après avoir renommé les tables (ou faites-le juste avant de remettre le site en ligne).

  1. Renommer les tables existantes
  • Tables “noyau” à renommer (mono-site) :
    • wp_commentmeta, wp_comments, wp_links, wp_options, wp_postmeta, wp_posts, wp_termmeta, wp_terms, wp_term_relationships, wp_term_taxonomy, wp_usermeta, wp_users

Exemple SQL (à lancer dans votre base) en remplaçant mz9x_ par votre préfixe:

RENAME TABLE
  wp_commentmeta TO mz9x_commentmeta,
  wp_comments    TO mz9x_comments,
  wp_links       TO mz9x_links,
  wp_options     TO mz9x_options,
  wp_postmeta    TO mz9x_postmeta,
  wp_posts       TO mz9x_posts,
  wp_termmeta    TO mz9x_termmeta,
  wp_terms       TO mz9x_terms,
  wp_term_relationships TO mz9x_term_relationships,
  wp_term_taxonomy TO mz9x_term_taxonomy,
  wp_usermeta    TO mz9x_usermeta,
  wp_users       TO mz9x_users;
  • Tables de plugins: listez-les et renommez-les si elles commencent par wp_. Pour lister:SHOW TABLES LIKE 'wp\_%'; Pour générer les RENAME automatiquement (optionnel, MySQL):SELECT CONCAT('RENAME TABLE `', table_name, '` TO `', REPLACE(table_name,'wp_', 'mz9x_'), '`;') FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name LIKE 'wp\_%'; Copiez-collez le résultat et exécutez.
  1. Corriger les clés de rôle et meta utilisateurs
  • Dans wp_options, la ligne option_name = 'wp_user_roles' doit devenir mz9x_user_roles: UPDATE mz9x_options SET option_name = 'mz9x_user_roles' WHERE option_name = 'wp_user_roles';
  • Dans wp_usermeta, certains meta_key commencent par wp_ (ex. wp_capabilities, wp_user_level, parfois wp_user-settings, wp_user-settings-time). Remplacez le préfixe: UPDATE mz9x_usermeta SET meta_key = REPLACE(meta_key, 'wp_', 'mz9x_') WHERE meta_key IN ('wp_capabilities','wp_user_level','wp_user-settings','wp_user-settings-time') OR meta_key LIKE 'wp_%'; Remarque: si des plugins stockent des meta_keys commençant par wp_, cette requête les adaptera aussi proprement.
  1. Vérifier d’autres occurrences textuelles
  • Rare mais possible: certains plugins stockent en base des chaînes contenant des noms de tables. Faites une recherche ciblée et remplacez si nécessaire:
    • Dans options (attention aux séries sérialisées):SELECT option_id, option_name FROM mz9x_options WHERE option_value LIKE '%wp_%';
    • Dans metas:SELECT umeta_id, user_id, meta_key FROM mz9x_usermeta WHERE meta_value LIKE '%wp_%';
    Si vous devez remplacer à l’intérieur de valeurs sérialisées, utilisez WP-CLI search-replace (gère la sérialisation): wp search-replace 'wp_' 'mz9x_' --all-tables --precise --report-changed-only Attention: ne remplacez pas aveuglément ‘wp_’ partout; ciblez les occurrences qui désignent des noms de tables ou des méta-clés.
  1. Mettre à jour wp-config.php et vider caches
  • Confirmez:$table_prefix = 'mz9x_';
  • Purgez caches (plugin cache, objet cache/Redis, et CDN si présent).
  • Désactivez le mode maintenance.
  1. Tests rapides
  • Connexion/déconnexion au back-office
  • Création d’un article, upload média
  • Vérifier rôles et permissions (un compte éditeur peut-il toujours éditer ?)
  • Recherche sur le site, pages de catégories/étiquettes
  • Plugins clés (e-commerce, formulaires, SEO)

Multisite (réseau)

Le réseau crée plusieurs ensembles de tables: wp_, wp_2_, wp_3_, etc. Procédure plus délicate:

  • Renommez le set principal comme ci-dessus.
  • Pour chaque site du réseau, renommez les tables wp_N_* vers mz9x_N_*.
  • Mettez à jour wp_sitemeta et wp_N_options pour la clé wp_user_roles de chaque site.
  • Testez les mappages de domaines et les rôles par site. Si vous n’êtes pas à l’aise, faites-le via un plugin spécialisé ou un script WP-CLI et prévoyez un rollback.

Outils/Plugins qui peuvent aider

iThemes Security (ex “Change Database Table Prefix” dans les outils avancés).

  • “Brozzme DB Prefix” ou “Change Table Prefix” dédiés. Toujours exécuter sur un staging d’abord, puis en prod, avec sauvegardes.