とても便利なWP CLI。一度使ったらその便利さがわかると思います。
「知ってはいるけど、なかなか使い始めるハードルが高い」
「別に今のままでも特に困っていない」
といった方向けに、取っ掛かりとしてDBの一括検索置換機能である wp search replace
をご紹介します。これにより、今までサイトの移行や複製はツールやプラグインを使っていた、という場合でもコマンド操作だけで早い・簡単・確実にサイト移行や複製を行うことが可能です。
前提としてsshでサーバーに接続しコマンド操作が必要なため、対象は中級者以上となります。
目次
WP CLI とは何か
WP CLI (ダブリューピー シーエルアイ)は開発者向けに提供されたコマンドラインのツールとなり、名前の通りWordPressのあらゆる操作をコマンドラインから実行できます。
SSH でサーバーに接続し、 WP CLI をインストールするだけで利用できます。レンタルサーバーでもWP CLI を自身でインストールして利用することができますが、公式にサポートされていないのがほとんどですので、自己責任で利用します。
動作環境、かんたんな使い方などの日本語ドキュメントは以下より確認できます。
Command line interface for WordPress | WP-CLI
WP CLI が利用できるレンタルサーバー一覧
実際に WP CLI をインストールして利用できたサーバーに加えて、インストールし利用できているのをウェブ検索により確認したレンタルサーバーは以下です。
- エックスサーバー
- ConoHa WING
- CPI
- ロリポップ!
- ヘテムル
- さくらのレンタルサーバー (公式発表はないもののインストール済みの様子)
- mixhost
- コアサーバー
- VALUE SERVER
基本的にsshでサーバーに接続できればインストールは問題なくできるのではないかと思います。
wp search replace とは
WP CLI のコマンドの一つである wp search replace
はデータベース上の文字列を検索または置換する機能を持ちます。ツールやプラグインと異なり画面描画がないため、高速に動作するのが特徴です。
公式のドキュメントは以下です。(英語)
wp search-replace | WP-CLI Command | WordPress Developer Resources
WordPress公式でもサイト移行時に WP CLI の wp search replace
を使うことが推奨されています。
1. ダッシュボードにアクセスできる場合は、 Velvet Blues Update URLs または Better Search Replace プラグインを使用してください。
WordPress の移行 – サポートフォーラム
2. ホスティングプロバイダー (またはあなた) が WP-CLI をインストールしている場合は、WP-CLI の検索置換 を使用してください。
3. Search and Replace for WordPress Databases Script を使用して、古いドメイン上のすべてのインスタンスやパスを新しいものに安全に変更することができます。(** データベース管理に慣れている場合のみ、このオプションを使用してください ** )
シリアライズされたデータも検索置換する必要があることに注意
WordPress を新しいサーバーに移行したり、同じサーバー内に複製したい場合はドメインやURLが変更となりますが、その際にデータベース内残っているドメインやURLに対して一括置換をする必要があります。
ただ、一部のテーマやウィジェット、プラグインでは、URLをシリアライズしてデータが保存されている場合があり、シリアライズされたデータがDB内にあると完全にURLの変換ができずに旧サイトのURLが残ってしまう可能性があります。
よって、 WP CLI や Database Search and Replace Script in PHP (WordPress側で「Search and Replace for WordPress Databases Script」と書かれているツール) 等を利用して、シリアライズされたデータを含め検索置換を行う必要があります。
Database Search and Replace Script in PHP はUIツール
無償で利用することができ(寄付が推奨されますが無料でもダウンロード可)、ダウンロードしたデータ一式をサーバーにアップし、アップした先にアクセスすることで利用できます。
wp search replace
とは異なり画面上から検索置換する内容を入力します。実行時や実行後も詳細が表示されるため、何を行っているかが視覚化されとても使いやすいツールです。初めて WordPress を移行するというのであれば、まずはこのツールからの利用をおすすめします。
詳しい利用方法は以下記事の途中に書いているのでご参考ください。
FTP等を使ってサーバーにSearch-Replace DBをアップロード
wp search replace を使ったサイト移行方法
ようやく本題です。WP CLI の wp search replace
コマンドを使ってサイト移行する方法をご紹介します。と言っても公式にかかれているので解説するまでも無く、基本のコマンドは以下です。
$ wp search-replace 'http://example.test' 'http://example.com'
- ‘http://example.test‘ 部分は検索対象のURLが入ります。主に古いサイトのURL。
- ‘http://example.com‘ 部分は置換対象のURLが入ります。主に新しいサイトのURL。
置換前には必ずバックアップを取った上で、 次に紹介する --dry-run
オプションを実施しましょう。
実施前にかならず Dry run でテスト実施
--dry-run
オプションにより、対象する検索・置換の内容が合っているか、対象数がどの程度かといったことが確認できます。
$ wp search-replace 'http://example.test' 'http://example.com' --dry-run
Dry run を実施後、問題ないと判断できたら --dry-run
オプションを外して wp search replace
コマンドを実行し検索・置換を行います。
マルチサイトの移行も WP CLI で可能
WordPress でマルチサイトだった場合でも、 --network
オプションを利用することで検索置換が可能です。
$ wp search-replace 'http://example.test' 'http://example.com' --network
DB置換後はパーマリンクの更新を
検索置換を正しく行った後に各画面を確認しますが、その際トップページは確認できても、まれに下層ページが404になることがあります。
その場合はパーマリンクの設定画面から保存をしておきます。これにより、 .htaccess ファイルが更新され、下層ページで発生していた404エラーを解消できます。新しい環境で正しく .htacess ファイルが更新されるかも含めて、エラーが起きなくてもこの作業を行っておくと安心です。
WP CLI を使って WordPress の操作を楽に
以上、 WP CLI の wp search replace
機能のご紹介でした。
WP CLI は他にも様々なコマンドがあります。例えば、
- プラグインを有効化・無効化・削除・新規追加等できる wp plugin
- WordPress 本体のダウンロード・インストール・アップデート・バージョンの表示等ができる wp core
- ユーザーアカウントを確認・追加・更新・削除等できる wp user
- テスト用のダミーデータとして任意の数の投稿を作成できる wp post generate
- URL・サイト名・サイトディスクリプションや管理者メールアドレス等の値を確認できる wp option get
- メンテナンスモードの有効化・無効化・ステータスの表示等ができる wp maintenance-mode
などほんの一例ですが、その他にも多くのコマンドがあります。
WP CLI は画面遷移を伴わないため、コマンドから操作ができると作業がより捗るようになるため、とてもおすすめです。私も勉強中でまだまだ使いこなせていませんが、是非一度触ってみることをおすすめします。
コメントを残す