/* 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); |
This comment has been minimized.
This comment has been minimized.
Thanks for the code :P |
This comment has been minimized.
This comment has been minimized.
Thanks :) |
This comment has been minimized.
This comment has been minimized.
Sometimes error with collation occurs. (Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT)) alter table wp_posts CONVERT TO CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; alter table wp_links CONVERT TO CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; alter table wp_postmeta CONVERT TO CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';` |
This comment has been minimized.
This comment has been minimized.
I used this to find all the relevant databases. in case an extension has urls... File -- dump.sh
execute and the results should look like this...
then it is just a matter of checking the columns for each table ... |
This comment has been minimized.
This comment has been minimized.
as Artistan mentioned, old domain url may exist in other tables such as the ones created by plugins. |
This comment has been minimized.
This comment has been minimized.
Hi.Thanks for the code. In case of this MySQL issue UPDATE wp_options SET option_value = replace(option_value, 'http://oldsite.com', 'http://newsite.com') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET post_content = replace(post_content, 'http://oldsite.com', 'http://newsite.com');
UPDATE wp_links SET link_url = replace(link_url, 'http://oldsite.com', 'http://newsite.com');
UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://oldsite.com', 'http://newsite.com');
#UPDATE wp_posts SET guid = replace(guid, 'http://oldsite.com', 'http://newsite.com'); Solution used with
I would like to remind you that we should also check the plugins tables - links may be there too Cheers |
This comment has been minimized.
This comment has been minimized.
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] |
This comment has been minimized.
This comment has been minimized.
If you get the error
then just add the collation for the vars. I.e. for for collation utf8_general_ci:
|
This comment has been minimized.
This comment has been minimized.
I've tested what @jaircuevajunior made and worked like a charm, thanks mate. |
This comment has been minimized.
This comment has been minimized.
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. |
This comment has been minimized.
This comment has been minimized.
Thanks! |
This comment has been minimized.
This comment has been minimized.
You could use this tool to generate your sql script : [link removed] |
This comment has been minimized.
This comment has been minimized.
What everybody SHOULD use anymore is WP-CLI Find/Replace. End of conversation. https://developer.wordpress.org/cli/commands/search-replace/ |
This comment has been minimized.
This comment has been minimized.
I couldn't agree more but:
that's why extensions and tools exist |
This comment has been minimized.
Thanks for the code.