2014年1月10日金曜日

WordPressでマルチサイトのドメイン名を変更する方法


WordPressをマルチサイト構成で構築して、移転先で管理画面に入らず設定を変更する方法です!


手順


  • wp-config.phpの「DOMAIN_CURRENT_SITE」を編集する
  • MySQL DBの値を変更する


wp-config.phpの 「DOMAIN_CURRENT_SITE」 を編集する

まずは、「DOMAIN_CURRENT_SITE」の値を変更します。
旧:
define( 'DOMAIN_CURRENT_SITE', 'test-www.example.com' );

新:
define( 'DOMAIN_CURRENT_SITE', 'new.example.com' );


MySQL DBの値を変更する

DBのPrefixが「wp_」を想定します。
以下手順:
  • wp_optionsのoption_nameが「home」、「siteurl」、「fileupload_url」のoption_value
  • wp_blogsの「dommain」

wp_optionsがいくつあるか確認:
mysql> show tables like 'wp_%options';
+---------------------------------------+
| Tables_in_wordpress (wp_%options)     |
+---------------------------------------+
| wp_11_options                         |
| wp_options                            |
+---------------------------------------+
2 rows in set (0.00 sec)

wp_optionsで、現在値の確認:
mysql> select option_name,option_value from wp_options where option_name = 'siteurl' OR option_name = 'home' OR option_name = 'fileupload_url';
+----------------+------------------------------------------------+
| option_name    | option_value                                   |
+----------------+------------------------------------------------+
| fileupload_url | http://test-www.example.com/wp-content/uploads |
| home           | http://test-www.example.com                    |
| siteurl        | http://test-www.example.com                    |
+----------------+------------------------------------------------+
3 rows in set (0.00 sec)

wp_blogsで、現在地の確認:
mysql> select domain,blog_id from wp_blogs;
+----------------------+---------+
| domain               | blog_id |
+----------------------+---------+
| test-www.example.com |       1 |
| test.example.com     |      11 |
+----------------------+---------+
2 rows in set (0.00 sec)


値の変更

wp_optionsで、変更:
UPDATE wp_options SET option_value = 'http://new.example.com' WHERE option_name = 'home';
UPDATE wp_options SET option_value = 'http://new.example.com' WHERE option_name = 'siteurl';
UPDATE wp_options SET option_value = 'http://new.example.com/wp-content/uploads' WHERE option_name = 'fileupload_url';

wp_optionsの数だけ、もしくは対象のところだけ対応します。
wp_blogsで、変更:
UPDATE wp_blogs SET domain = "new.example.com" WHERE blog_id = 1;


確認

最後に値が変更されているか、確認
次にサイトにアクセスして確認

まとめ


  • マルチサイトでも、流れをつかめば変更は難しくなかったです!
  • プラグインで、変えられるのがあるようなので管理画面まで入れる方はそちらを。
  • わーい!できた!

ドメイン名を変えるプラグイン



参考サイト




この本、参考になります!

いちばんやさしいWordPressの教本 人気講師が教える本格Webサイトの作り方
by カエレバ

Zenback