開発中のテーマで記事の表示確認をするために、他のサイトで公開中の記事をまとめてコピーし、開発中サイトに移動しました。その手順を備忘としてまとめました。
ここでは、データベース名、データベースユーザー名を下記としています。
・コピー元
データベース名:wpmydb
データベースユーザー名:wpmydbuser
・コピー先
データベース名:wpnewdb
データベースユーザー名:wpnewdbuser
1)コピー元サイトがあるサーバーでデータベースをバックアップ
mysqldump --add-drop-table -h localhost -u wpmydbuser -p wpmydb | bzip2 -c > wp_mydb.bz2
2)コピー先サイトでデータベースリストア
$ bzip2 -d wp_mydb.bz2 $ mysql -h localhost -u wpnewdbuser -p wpnewdb < wp_mydb Enter password:
3)データベース内に記録されているコピー元サイトのURLをコピー先URLに置換
下記サイトのツールを使ってデータベース内に記録されているサイトURLを置換します。
DATABASE SEARCH AND REPLACE SCRIPT IN PHP
手順の概要は下記の通りです。
①上記サイトからツール(zipファイル)を入手
②zipファイルを解凍し、他のユーザに不正に実行されないようにするため、フォルダ名(デフォルトはsecret-name-please)を変更
③上記フォルダををWordPressのルートディレクトリにアップロード
④ブラウザから上記スクリプトにアクセス
⑤ブラウザの画面の指示に従ってURLを置換
⑥作業が終了したら不正に実行されないようにフォルダを削除
4)wp_optionsテーブルの'siteurl'、'home'に設定されているサイトURLをコピー先のURLに変更
3)の専用スクリプトを実行するだけだとコピー先サイトの管理画面にログインするとコピー元サイトへリダイレクトされてしまいました。
手動で下記のようにwp_optionsテーブルの'siteurl'、'home'に設定されているサイトURLを更新しました。
ここでは、コピー先サイトのサイトURLをhttp://new.example.com/wpnewと仮定しています。
update wp_options set option_value = 'http://new.example.com/wpnew' where option_name = 'siteurl';
update wp_options set option_value = 'http://new.example.com/wpnew' where option_name = 'home';
5)コピー先サイトの管理画面にログイン
コピー元サイトの記事が正しくコピーされているか確認します。
検索エンジンがサイトをインデックスしないように下記設定をします。
管理画面「設定」→「表示設定」→「検索エンジンでの表示」
"検索エンジンがサイトをインデックスしないようにする"にチェックを入れて、「変更を保存」 関連記事の目次
-
WordPress設定
- WordPressリファレンス、メモ
- パーマリンク設定時のApache設定
- WordPressテーマの選定
- WordPressで画像のアップロード、サイズ調整、リンクを設定
- マルチサイト化に伴う制約、デメリット
- WordPressのwp-config.phpでテーブルプレフィックスを変更
- WordPress投稿のリビジョン管理と自動保存
- WordPressディレクトリのパーミッションをセキュアに
- WordPressの認証用ユニークキーをセキュアに
- WordPressのバージョン情報を表示しないようにする
- WordPressでGoogleの2段階認証プロセスを使用する手順
- WordPressの更新情報・要件、各バージョンの新機能
- WordPressデータベースのバックアップとリストア
- WordPress用データベースバックアップをbashスクリプトとcronで定期実行
- WordPressのバージョンアップと旧バージョンへの戻し
- WordPressの記事をサイト間でコピーする方法
- WordPressのアップデート方法の種類、注意点
- WordPressのメンテナンスモード、カスタムメンテナンスページ
- WordPressでデバッグを有効にする方法
- WordPressの投稿内でJavaScriptを使う方法
- WordPressでJavaScriptを使って折りたたみリンクメニューを作成
- 自ブログ動作確認時にGoogleアドセンスの広告を表示しない
- WordPressでAngularJSを使ったGoogleマップを使えるようにする
- WordPressの投稿にAngularJSのディレクティブを記述する方法
セキュリティ
メンテナンス
その他、応用