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?
Leave a Reply
You must be logged in to post a comment.
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 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
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.
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.
You could put those settings in an external file and exclude it from your publishing process.
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.
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.