Aller au contenu
Outils

SQL de recherche et remplacement

Changez l'URL de votre site sans corrompre les données sérialisées

Tourne dans votre navigateur. Rien n'est envoyé.

The change

Read this before you run anything

WordPress stores many options as PHP-serialized strings, and a serialized string records its own byte length — s:19:"http://old-site.com". A plain SQL replace changes the text but not the length, so PHP can no longer unserialize the row. It does not error. The value just silently becomes empty.

What you lose: widget configuration, theme mods, and most plugin settings. Usually you do not notice until days later, and by then the backup you would have restored is gone too.

This is why the queries below deliberately do not touch wp_options.

What are you moving?
search-replace.sql

Take a database backup first. Not 'consider taking one' — take one. There is no undo for an UPDATE.

À propos de SQL de recherche et remplacement

Un rechercher-remplacer SQL naïf sur une base de données WordPress casse chaque option sérialisée qu'il touche, car la longueur de chaîne stockée ne correspond plus. Cet outil génère les requêtes qui sont sûres et explique précisément lesquelles ne le sont pas.

FAQ

Questions

Puis-je changer l'URL de mon site WordPress avec un rechercher-remplacer SQL ?

Pas sans risque, et c'est le plus mauvais conseil le plus partagé dans l'univers WordPress. Beaucoup d'options sont stockées sous forme de chaînes PHP sérialisées qui enregistrent leur propre longueur en octets. Un simple remplacement SQL change le texte mais pas la longueur, donc PHP échoue silencieusement à désérialiser la ligne et la valeur disparaît tout simplement — emportant avec elle les réglages de widgets, les modifications de thème et la configuration des plugins.

Que faut-il utiliser à la place ?

WP-CLI : « wp search-replace old new --all-tables --dry-run » d'abord, puis sans --dry-run. Il comprend la sérialisation et réécrit correctement les préfixes de longueur. Si vous n'avez pas d'accès CLI, le plugin Better Search Replace fait la même chose depuis l'administration.

Faut-il mettre à jour la colonne GUID ?

Non. Le GUID est un identifiant unique permanent pour un article, pas un lien, et les lecteurs de flux s'en servent comme clé. Le réécrire fait voir à chaque abonné chaque ancien article comme un nouveau. La documentation de WordPress dit explicitement de ne pas le changer.