プログラマの戯言

Wordpress、PHP、Movabletype、Javascript、SQL、アプリ他いろいろTips

Wordpressでサーバ移転を行った際に、旧環境に飛んでしまうのを修正する方法

Wordpressでサーバ移転を行った際
一覧ページから、詳細ページへのリンクを押下したら
旧環境のリンクに飛んでしまうのを修正する方法です。

基本的には、データ自体に旧環境のドメインなどが登録されているので
そちらを新環境のドメインにアップデートを行うという対応となります。

以下アップデートを行うテーブル
 wp_blogs
 wp_sitemeta
 wp_options
 wp_posts
 wp_posts

※デフォルトの接頭辞を使用しているので、変更している場合は
 適宜変更してください。

アップデート文

UPDATE wp_blogs SET domain = REPLACE( domain, 'www.old_example.com' , 'www.example.com' );
UPDATE wp_sitemeta SET meta_value = REPLACE( meta_value, 'www.old_example.com' , 'www.example.com' );
UPDATE wp_options SET option_value = REPLACE( option_value, 'www.old_example.com' , 'www.example.com' );
UPDATE wp_posts SET guid = REPLACE( guid, 'www.old_example.com' , 'www.example.com' );
UPDATE wp_posts SET post_content = REPLACE( post_content, 'www.old_example.com' , 'www.example.com' );

REPLACE関数を使用して
www.old_example.comとあるものをwww.example.comに書き換えています。
大量の投稿がある際は1つずつやるのはバカらしいので
上記で一括変更してしまいましょう。
※不安であればバックアップの準備はお忘れなく

また、マルチサイトを行っている場合は下記のようにすると変更できます。

UPDATE wp_2_options SET option_value = REPLACE( option_value, 'www.old_example.com' , 'www.example.com' );
UPDATE wp_2_posts SET post_content = REPLACE( post_content, 'www.old_example.com' , 'www.example.com' );
UPDATE wp_2_posts SET guid = REPLACE( guid, 'www.old_example.com' , 'www.example.com' );
UPDATE wp_2_postmeta SET meta_value = REPLACE( meta_value, 'www.old_example.com' , 'www.example.com' );

環境を変えてリンクがおかしい!!!!
という時には参考にしてみてください。