Wordpress host IP changed

You have to change the 'home' and 'siteurl' in the settings. Since you cannot open the admin side of wordpress, open the database in phpMyAdmin(or something similar).

The options can be found in the 'wp_options' table(wp_ prefix might be different). Find the necessary setting using this query...

SELECT * FROM `wp_options` WHERE `option_name` IN ('siteurl', 'home')

Change the values of both the options to the new IP.


To temporarily be able to login, use this code in your wp-config.php:

define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');

or you can add this to your theme's functions.php:

update_option('siteurl','http://example.com/');
update_option('home','http://example.com/');

Warning: Updating the SQL database will be required in order for installed plugins to use the new URL/hostname. So if you use plugins modifying the database is required.


You have two places to update this (well three, but we'll stick with the two).

If you can still log into your admin section, type the following for your URI /wp-admin/options.php - so for example, if your site is http://localhost then your full URL will be http://localhost/wp-admin/options.php. Once you've logged into your site you should see two fields (well you'll see a lot of fields), but you'll want to look for the two with URL's in them - the Site URL and the Blog URL (in WP 2.7 the fields are labeled "home" and "siteurl", not sure on the other versions).

Or, you can log into MySQL database and run the following.

Select * from wp_options where option_name IN('siteurl','home'); 

I just ran this today on one of my installs. If you're option_value is set to your localhost - you can then run the following:

update wp_options set option_value='http://www.yourblogname.com' where option_name = 'siteurl';
update wp_options set option_value='http://www.yourblogname.com' where option_name = 'home';

This should update your table structure.


I ran into this problem before when I was migrating a site from test to production. Conveniently, MySQL has a string replace function.

Try something like this:

UPDATE wp_posts SET post_content = REPLACE(post_content,"http://localhost","http://www.myblog.com")

Tags:

Php

Wordpress