Change site url when moving site to another url?

Is it really neccessary to put WP_HOME, WP_SITEURL in wp-config.php or set these settings via admin panel every time when moving a WordPress instance to another url (for example: moving from dev environment to production)? Is there any better strategy?

Related posts

Leave a Reply

6 comments

  1. Those parameters and admin settings change the URLs in the database. The only other way to do that is run SQL queries on the DB in phpmyadmin to change them:

    UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com') WHERE option_name = 'home' OR option_name = 'siteurl';
    
    UPDATE wp_posts SET guid = replace(guid, 'http://olddomain.com','http://newdomain.com');
    
    UPDATE wp_posts SET post_content = replace(post_content, 'http://olddomain.com', 'http://newdomain.com');
    
    UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://olddomain.com', 'http://newdomain.com');
    

    Update 1/16/2015: it’s much better to use a script that deals with serialized data, such as interconnectit.com WordPress Serialized PHP Search Replace Tool

  2. What I do here is I keep an entry in my /etc/hosts file pointing the site domain to 127.0.0.1. Most of the time the line is commented so my machine points to the production site, and when I’m developing something I just uncomment the line and the domain will point to my dev box.

    I know it’s kinda ugly, but since WordPress puts the domain in a lot of fields in the database (especially if you need to work with real data in your development environment), it’s the fastest method I could come up with.

  3. When you move from one server to another the problem could be URLs that WP serialized in DB.
    To do a safe search and replace you can use this tool search replace db.

    Is very simple, follow the instructions and remember to remove the script when done.

  4. I don’t mess with core files, I just move the themes and plugins around instead. I develop locally and zip the themes and plugins for production. I have about ten WordPress installs most internal and this has worked well for me so far.

    I also, don’t move much data around so this answer may not help you. There are some pretty extensive free plugins for backing up data and restoring.

  5. Use on the top of your functions.php:
    update_option(‘siteurl’,’http://yoursite.com’);
    update_option(‘home’,’http://yoursite.com’);

    Navgigate through your site a bit, login the backend en remove these lines.

    This should be sufficient.