先日、WordPressで構築したマルチサイトのドメイン変更をする機会がありました。通常WordPressで構築したWebサイトに独自ドメインを振る場合、ダッシュボード「設定」→「一般」の「サイトアドレス」変更でドメインの変更が可能(※1)ですが、マルチサイトでは子サイトのURL変更はダッシュボードでは設定ができず、そのままでは子サイトに対してエラーが返ってきてしまいます。
(※1 公開サイトがルートにない場合は.htaccessの設定が必要です)
私も参考にさせてもらいましたが、マルチサイトでのドメイン変更はこちらのサイトに詳しく書かれています。非常に素晴らしいマニュアルですのでお困りの方は参考になさってください。
話は戻りますが、今回は一旦投稿した記事中のURLを一括で変更する方法についてご紹介しようと思います。いま別のサイトでEasy Digital Downloads プラグインを用いてコンテンツを配布しているのですが、途中でカテゴリが増えてしまいファイル名称をリネームしたいという状況になりました。アナログな手段でコツコツ修正するのか・・・と普通は考えがちですが、コンテンツ量が増えてしまっている場合は修正が容易ではありません。というわけで上に書いたマルチサイトのURL書き換え方法を参考に一括書き換えをしてみました。
まず、作業としては以下があります。
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
1、投稿でリンクした関連画像などのリンクURLのリネーム(データベース中)
→ 必要であれば
2、プラグインに登録したダウンロード用ファイルのURL変更(データベース中)
3、配布するファイルのリネーム(サーバーの中)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
1と2のデータベース中のURL変更は、文頭に書いた方法で1度に変更が可能です。
こちらのサイトの中ごろにあるボタンからsearchreplacedb21.zipをダウンロードします。
zipを解凍すると「searchreplacedb2.php」というphpファイルが出てきますので、拡張子の.phpを残したまま適当な名称に変更します。これはこれからサーバーにアップする際、他からアクセスされるリスクをなくすためですので、なんでもOKです。
このファイルをWordPressと同じフォルダに入れ込み、ファイルにアクセスします。
例)http://hoge.com/efghjkoiugfdsty567i.php
アクセスすると以下のように表示されますので「Submit」をクリックします。
データベースの情報が入って戻ってきますので、確認して「Submit DB details」をクリック。
WPデータベース内のテーブルが表示されます。デフォルトですべてのテーブルが選択されていますので、そのまま「Continue」をクリック。
確認のウィンドウが出ますが、そのまま「OK」。ここまで何もいじらずポチッとするだけですすみます。どきどきしますね。
次にはじめてテキストの入力を。変更したいファイル名やURLなどの置換したいファイルまでのURLを入力します。誤って記事内の他の内容とかぶらないよう、http://から指定します。
例えば・・・
「http://hoge.com/file/file0055.jpg」などの連番ファイル管理から
「http://hoge.com/file/file_photo_0055.jpg」と変更したい場合
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
例)Search for → http://hoge.com/file/file
Replace with → http://hoge.com/file/file_photo_
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
ここに入力する際、テキスト末が「/」スラッシュにならないようなファイル名で変更するよう、十分に注意してください。
「Sumbit Search string」をクリックします。
以上です。成功すると書き換わったtext数などの内容が表示されますので、すぐにサーバー内に置いた「searchreplacedb2.php(名称変更したもの)」を削除します。手に汗握ってここまできますが、データベース内のテキストはこの方法で一括書き換えが可能です。
続いてサーバー内のファイル名称を一括で書き換える方法を。
Mac OSはYosemite以降デフォルトでファイル一括書き換え機能が付きました。名称変更したいファイルを選択して右クリック、「〜項目の名前を変更」を選択します。
「検索文字列」に変更したい名称部分を、「置換文字列」に新しい名称を入れます。
「名前を変更」をクリックして一気に書き換えします。
変更したファイルをサーバー内のファイルに上書きして終了です。
この方法で投稿内のリンクやプラグインに登録したファイルのパス、すべてのURLが変更されます。実際にファイルをダウンロードして確認をしてください。
データベースの書き換えはけっこう勇気がいりますので、この際バックアップの取り方を覚えておいて損はないと思います。バックアップさえあれば失敗してもそこからサイトを複製することも可能ですので、文頭で紹介したサイトをいちど熟読されてみても良いかと。