-
-
Save chuckreynolds/6032234 to your computer and use it in GitHub Desktop.
/* Use WP-CLI instead https://developer.wordpress.org/cli/commands/search-replace/ */ | |
SET @oldsite='http://oldsite.com'; | |
SET @newsite='http://newsite.com'; | |
UPDATE wp_options SET option_value = replace(option_value, @oldsite, @newsite) WHERE option_name = 'home' OR option_name = 'siteurl'; | |
UPDATE wp_posts SET post_content = replace(post_content, @oldsite, @newsite); | |
UPDATE wp_links SET link_url = replace(link_url, @oldsite, @newsite); | |
UPDATE wp_postmeta SET meta_value = replace(meta_value, @oldsite, @newsite); | |
/* only uncomment next line if you want all your current posts to post to RSS again as new */ | |
#UPDATE wp_posts SET guid = replace(guid, @oldsite, @newsite); |
If you get the error
#1270 - Illegal mix of collations ...
then just add the collation for the vars. I.e. for for collation utf8_general_ci:
SET @oldsite='http://oldsite.com' COLLATE utf8_general_ci;
SET @newsite='http://newsite.com' COLLATE utf8_general_ci;
....
# rest of the code as above
I've tested what @jaircuevajunior made and worked like a charm, thanks mate.
The procedure proposed by @jaircuevajunior is quite straightforward, however it will only fully work if the former URL and the new one have the same length. Therefore I suggest that you keep this in mind if, for example, you're working on a test version and plan to move to production.
When the lengths differs, you need to use a more sophisticated script that takes into consideration variable serialization frequently used in WordPress database.
For this, I've used successfully a few times a script developed by Interconnect/IT (it's free but you need to complete a form to get it).
[link removed]
Thanks!
You could use this tool to generate your sql script : [link removed]
What everybody SHOULD use anymore is WP-CLI Find/Replace. End of conversation. https://developer.wordpress.org/cli/commands/search-replace/
I couldn't agree more but:
- wp cli is not available on all hosting services
- using a command line tool is not possible for the majority of users
that's why extensions and tools exist
Hi guys,
First of all thanks for the tips, they are very appreciated.
What do you think of find/replace within dumpfile method?
I've came across this method after having some problems using this method with other tables, as Artistan has mentioned this possibility.
So I started to think about find/replacing inside dumpfile itself.
Looks like it works...
I have created a gist explaining the simplicity of this process [link removed]