※事前に必ずバックアップを取りましょう
環境
WordPress:5.0.3
PHP:7.1.3
OS:Win10 XAMPP
ツール:WinSCP,phpMyAdmin
DB:MySQL
ファイルのダウンロード
まずは現在WPが稼動しているサーバーから全ファイルをダウンロードします。
※特に注意点なし
データベースのエクスポート
WPが稼動しているデータベースからデータのエクスポート
公式ドキュメントより
「生成オプション」セクション
「DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGER コマンドを追加する」をチェックしてエクスポート
ファイルを移行先にアップロード
ファイルをアップロードしたら設定ファイルを編集して移行先のデータベース情報を設定してください。
wp-config.php
// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define('DB_NAME', 'database_name_here');
/** MySQL データベースのユーザー名 */
define('DB_USER', 'username_here');
/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'password_here');
/** MySQL のホスト名 */
define('DB_HOST', 'localhost');
/** データベースのテーブルを作成する際のデータベースの文字セット */
define('DB_CHARSET', 'utf8');
/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define('DB_COLLATE', '');
データベースのインポート
厄介なのでSQLで一括で編集
UPDATE wp_options SET option_value="https://localhost/blog" WHERE option_name="siteurl";
UPDATE wp_options SET option_value="https://localhost/blog" WHERE option_name="home";
UPDATE wp_posts SET post_content=REPLACE(post_content, "https://office-goto.info", "https://localhost/blog");
WordPress アドレス (URL)とサイトアドレス (URL)を移行先のURLに書き換えています。
記事内のデータに関してはリンクや画像などを追加するとき直で参照先を記載するWPの仕様なので記事内容のみ文字列を新しいURLに置換しています。
記事はwp_postsテーブルのpost_contentに格納されています。
ちなみにエクスポートしたsqlファイルを編集してURLを全て一括で置換してからインポートするやり方はウィジットが消えたりめちゃくちゃになったので辞めておいたほうが無難です。
.htaccessの修正
http、https、wwwあり・なしなどを統一したりしてる場合
ログインURLをプラグイン等で変更している場合などさまざまな場合がありますので自身の環境に合わせた修正が必要です。
例)ローカルのblogフォルダにWPを入れて検証する場合
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
# END WordPress
原因不明
外観->メニューのURLがどこで設定されているか分かっていないためメニューのURLだけWPの管理画面から編集した。
タグをどこかのファイルに書き出しているのかも?