Recently I changed a domain alias for a WordPress site and needed to change the domain in all the pages/posts and this little script came in handy.
Typical disclaimer stands, do a full backup before running this and verify you have everything setup correctly.
UPDATE wp_options SET option_value = REPLACE(option_value, 'wp.domain.com', 'www.domain.com') WHERE option_value LIKE ('%wp.domain.com%');
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'wp.domain.com', 'www.domain.com') WHERE meta_value LIKE ('%wp.domain.com%');
UPDATE wp_posts SET post_content = REPLACE(post_content, 'wp.domain.com', 'www.domain.com') WHERE post_content LIKE ('%wp.domain.com%');
UPDATE wp_posts SET guid= REPLACE(guid, 'wp.domain.com', 'www.domain.com') WHERE guid LIKE ('%wp.domain.com%');
If you have a network site first update your wp-config.php
sed -i 's|wp.domain.com|www.domain.com|g' wp-config.php
Secondly update all database tables, note this may be different depending on how many sites you have.
Update wp_site SET domain = 'www.domain.com' WHERE domain = 'wp.domain.com'; Update wp_sitemeta SET meta_value = 'http://www.domain.com/' WHERE meta_key = 'siteurl'; Update wp_sitemeta SET meta_value = 'www.domain.com' WHERE meta_key = 'dm_ipaddress'; UPDATE wp_blogs SET domain = 'www.domain.com' WHERE domain = 'wp.domain.com' ;
UPDATE wp_options SET option_value = REPLACE(option_value, 'wp.domain.com', 'www.domain.com') WHERE option_value LIKE ('%wp.domain.com%');
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'wp.domain.com', 'www.domain.com') WHERE meta_value LIKE ('%wp.domain.com%');
UPDATE wp_posts SET post_content = REPLACE(post_content, 'wp.domain.com', 'www.domain.com') WHERE post_content LIKE ('%wp.domain.com%');
UPDATE wp_posts SET guid= REPLACE(guid, 'wp.domain.com', 'www.domain.com') WHERE guid LIKE ('%wp.domain.com%');
Update wp_usermeta SET meta_value = 'www.domain.com' WHERE meta_key = 'source_domain';
UPDATE wp_2_options SET option_value = REPLACE(option_value, 'wp.domain.com', 'www.domain.com') WHERE option_value LIKE ('%wp.domain.com%');
UPDATE wp_3_options SET option_value = REPLACE(option_value, 'wp.domain.com', 'www.domain.com') WHERE option_value LIKE ('%wp.domain.com%');
UPDATE wp_4_options SET option_value = REPLACE(option_value, 'wp.domain.com', 'www.domain.com') WHERE option_value LIKE ('%wp.domain.com%');
UPDATE wp_5_options SET option_value = REPLACE(option_value, 'wp.domain.com', 'www.domain.com') WHERE option_value LIKE ('%wp.domain.com%');
UPDATE wp_6_options SET option_value = REPLACE(option_value, 'wp.domain.com', 'www.domain.com') WHERE option_value LIKE ('%wp.domain.com%');
UPDATE wp_2_postmeta SET meta_value = REPLACE(meta_value, 'wp.domain.com', 'www.domain.com') WHERE meta_value LIKE ('%wp.domain.com%');
UPDATE wp_3_postmeta SET meta_value = REPLACE(meta_value, 'wp.domain.com', 'www.domain.com') WHERE meta_value LIKE ('%wp.domain.com%');
UPDATE wp_4_postmeta SET meta_value = REPLACE(meta_value, 'wp.domain.com', 'www.domain.com') WHERE meta_value LIKE ('%wp.domain.com%');
UPDATE wp_5_postmeta SET meta_value = REPLACE(meta_value, 'wp.domain.com', 'www.domain.com') WHERE meta_value LIKE ('%wp.domain.com%');
UPDATE wp_6_postmeta SET meta_value = REPLACE(meta_value, 'wp.domain.com', 'www.domain.com') WHERE meta_value LIKE ('%wp.domain.com%');
UPDATE wp_2_posts SET post_content = REPLACE(post_content, 'wp.domain.com', 'www.domain.com') WHERE post_content LIKE ('%wp.domain.com%');
UPDATE wp_3_posts SET post_content = REPLACE(post_content, 'wp.domain.com', 'www.domain.com') WHERE post_content LIKE ('%wp.domain.com%');
UPDATE wp_4_posts SET post_content = REPLACE(post_content, 'wp.domain.com', 'www.domain.com') WHERE post_content LIKE ('%wp.domain.com%');
UPDATE wp_5_posts SET post_content = REPLACE(post_content, 'wp.domain.com', 'www.domain.com') WHERE post_content LIKE ('%wp.domain.com%');
UPDATE wp_6_posts SET post_content = REPLACE(post_content, 'wp.domain.com', 'www.domain.com') WHERE post_content LIKE ('%wp.domain.com%');
UPDATE wp_2_posts SET guid= REPLACE(guid, 'wp.domain.com', 'www.domain.com') WHERE guid LIKE ('%wp.domain.com%');
UPDATE wp_3_posts SET guid= REPLACE(guid, 'wp.domain.com', 'www.domain.com') WHERE guid LIKE ('%wp.domain.com%');
UPDATE wp_4_posts SET guid= REPLACE(guid, 'wp.domain.com', 'www.domain.com') WHERE guid LIKE ('%wp.domain.com%');
UPDATE wp_5_posts SET guid= REPLACE(guid, 'wp.domain.com', 'www.domain.com') WHERE guid LIKE ('%wp.domain.com%');
UPDATE wp_6_posts SET guid= REPLACE(guid, 'wp.domain.com', 'www.domain.com') WHERE guid LIKE ('%wp.domain.com%');
Remember sometimes the domain is not in the database, if needed you can do this command to search code files
grep -R 'wp.domain.com' /var/www/html
Originally Posted on October 17, 2014
Last Updated on January 15, 2021
Last Updated on January 15, 2021
All information on this site is shared with the intention to help. Before any source code or program is ran on a production (non-development) system it is suggested you test it and fully understand what it is doing not just what it appears it is doing. I accept no responsibility for any damage you may do with this code.