Edited at

[WordPress + MySQL] DBからサイトURLを変更

More than 3 years have passed since last update.


概要

管理画面からURLを間違って設定してログインできなくなった時や、既存のサイトをコピーして別サイトを立ち上げる時、データベースからURLを修正・変更することができます。

※記事内にサイトアドレスが含まれている場合は別途、データ変更が必要になるかもしれません。


※コメントをいただいたので追記

wp-config.phpでURL変更できるようですが、管理画面の一般設定からURLの変更ができなくなる(変更が効かない?)ようです。検証していないので推測になりますが、管理画面のURL設定はDBでデータを持っていて、config.phpでURLを設定した場合にconfigを優先して設定を読み込むからかもしれません。

https://wpdocs.osdn.jp/%E3%82%B5%E3%82%A4%E3%83%88_URL_%E3%81%AE%E5%A4%89%E6%9B%B4

これは最適な方法とは言えないかもしれません。サイトの値を決め打ちしているだけです。この方法を使うと、サイトの一般設定ページで値を変更することはできなくなります。


環境(筆者が実施した)


  • WordPress 3.9.9

  • MySQL 5.6

他バージョンで実施する場合は適せん読み替えしてください。


手順

WordPressアドレスとサイトアドレスを同じURLに変更します。


  • WordPressアドレスとサイトアドレスを確認

パラメータ名からして、

- WordPressアドレス→home

- サイトアドレス→siteurl

と思いますが未確認です。それぞれ別のURLを設定する場合はsiteurlだけ設定してログインできるか確認してみてください。

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


  • WordPressアドレスとサイトアドレスを変更

UPDATE wp_options SET option_value = 'http://example.com' where option_name IN ('home','siteurl');


  • 変更されたか確認

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


  • WordPressの管理画面にログインして「一般設定」からURLが変更されたか確認


    • WordPress アドレス (URL)

    • サイトアドレス (URL)




あとがき

仕様なんでしょうが、URLをDBに設定している意味があまり感じられません。

管理画面のURL変更してログインできなくなるというのはメンテナンス性が悪いので、E●−CUBEみたいにconfig用PHPで設定できるようにして欲しいです。


コメントをいただいたので追記

wp-config.phpでもURLを設定できるようですが、管理画面からのURL変更ができなくなるなどデメリットが発生します。それを考えたらURL変更はDBでやる必要がありますね。