検索と置換
MyKinstaでは、プラグインやスクリプトのインストール、コマンドラインの使用なしで、サイト内のコンテンツの検索と置換を行う便利なツールをご利用いただけます。
補足)検索と置換を実行すると、MyKinstaにシステムが生成したバックアップが自動的に作成され、必要に応じて復元が可能になります(「WordPressサイト」>(サイト名)>「バックアップ」>「システム生成」)。
MyKinstaの検索と置換ツール使用方法
このツールを使用するには、MyKinstaにログイン後、左サイドバーの「WordPressサイト」をクリックし、検索と置換を実行したいウェブサイトの名前を選択します。
「ツール」タブに進み、「検索と置換」セクションのボタンをクリックしてください。
検索と置換ツールにはざまざまな用途がありますが、今回の例では、データベースで「http」が使用されているURLを「https」に変更していきます。
検索フィールドに、データベースで検索したい文字列を入力し、「検索」をクリックすると、検索した文字列の使用件数が確認できます。
検索と置換を行うには、「検索後に置換する」 ボックスにチェックを入れ、「以下に置き換える」フィールドに、新しい文字列、URL、値などを入力します。
検索と置換の実行後、サイトのキャッシュパージを自動的に行うには、「実行後にキャッシュをクリアする」ボックスのチェックをそのまま残しておくことをお勧めします。これによって、訪問者が更新されたバージョンをすぐに閲覧することが可能になります。次に、「検索後に置換する」ボタンをクリックします。
このWordPressの検索と置換が実行されると、確認ダイアログが表示され、処理された置換の数が確認できます。完了したら、「キャンセル」またはポップアップ画面の右上にあるXをクリックして、ツールを閉じます。これで完了です。
トラブルシューティング
検索と置換を行う際、エラーが発生する可能性があります。これからご紹介する方法を実行しても解決しない場合、またはWP-CLIの操作に慣れていない場合は、開発者の力を借りて作業を行うことをお勧めします。
ヒントと注意事項
- search-replaceを実行してデータベースに変更を加える前に、バックアップの作成か、データベースのコピーをエクスポートしておくのが得策です。
- WP-CLIの
export
コマンドを使用すると、データベースのコピーをエクスポートすることができます。 - search-replaceコマンドを
--dry-run
フラグ付きで最初に実行すると、変更を加える前に何が影響を受けるのかを把握することができます。 - ステージング環境から本番環境への反映に付随する検索と置換の最中に問題が生じた場合、反映は行われません。ステージング環境を本番環境に反映するには、以下のいずれかを実行します。
- 本番環境に反映する前に、ステージング環境のデータベースで問題を解決する。
- 「検索と置換の実行」をチェックせずにステージング環境を本番環境に反映した後に、別途検索と置換を実行する。
データが長すぎる
このエラーは、許容値よりも長い文字列でカラムを更新しようとした際に発生し、以下のように表示されます。
Data too long for column ‘guid’ at row 1
この問題を回避または解決するには、以下のいずれかを試してみてください。
- このエラーを回避または解決するには、以下のいずれかの操作を実行してみてください。WP-CLIでsearch-replaceを実行して影響を受けるカラムを
--skip-columns
フラグでスキップする(例:--skip-columns=guid
)。 - 開発者に依頼してカラムを変更し、許容値の長さを変更する。
初期化されていないクラスをスキップ
このエラーは通常、検索と置換がオブジェクトを解釈するためにクラスの読み込みが必要であるものの、そのクラスが由来するプラグインまたはテーマが適切に読み込まれない場合に発生します。以下のように表示されます。
Skipping an uninitialized class “Some_PHP_Class”, replacements can not be completed.
このエラーを回避するには、WP-CLIでsearch-replaceを実行してみてください。うまくいかない場合は、再度search-replaceを実行して、コマンドに--skip-plugins --skip-themes
フラグを追加します。
注意事項と実例
上記でご説明した検索と置換ツールの使い方を踏まえて、注意事項と参考例をご紹介します。
注意事項
- なお、先にも触れましたが、検索では大文字と小文字が区別されるため、「WordPress」と「wordpress」では、検索結果が異なることにご注意ください。
- URLを置換する場合、プロトコル(http:// または https://)を含む完全なURL、少なくとも、ドメインの前のスラッシュ(例:/example.com)まで含めるのがベストプラクティスです。これによって、メールアドレスのドメインは変更せずに置換することができます。
- スペースや句読点を含む、文章全体の検索と置換が可能です。
- Bedrockなどを利用した特別なサイト構成の場合、またはプラグインやテーマでエラーが発生している場合、検索と置換ツールが実行できないことがあります。このような場合は、必要に応じて、
--skip-plugins
または--skip-themes
を追加し、WP-CLIのsearch-replaceコマンドを実行してみてください。 - プラグインやテーマによっては、データベースに情報を保存する方法が異なるため、それに搭載されている検索と置換機能を使用しなくてはいけない場合があります。一般的な例としては、以下が該当します。
- BeTheme Muffin Content Builder
- Slider Revolution Domain Switch AddOn(古いバージョンには、各スライダーのスライダー設定にURL置換機能が搭載されている場合があります)
- OptimizePress
- プラグインやテーマにキャッシュ機能が付いている場合、検索と置換を行った後にキャッシュをクリアする必要があります。一般的な例としては、以下が該当します。
- 検索と置換を行なってもサイトが更新されていないようであれば、弊社で処理するサーバーキャッシュ以外に、別のキャッシュが残っている可能性があります。以下の手順で、すべてのキャッシュがクリアされているか確認してください。
- 内蔵のテーマやプラグインのキャッシュをクリアにする
- サイトとサーバーのキャッシュをクリアする(テーマやプラグインのキャッシュをクリアした場合は、これを再度行う必要があります)
- ブラウザのキャッシュをクリアする
実例
以下の例にある各ドメインを、お客様のものに変えてご活用ください。
www.www.domain.comをwww.domain.comに置き換える
お客様のサイトのコンテンツに、すでにwww.domain.comのインスタンスがあり、MyKinstaでプライマリドメインをdomain.comからwww.domain.comに変更して、「検索後に置換する」にチェックを入れた場合、ドメインがwww.www.domain.comとなる場合があります。
「/www.www.domain.com」で検索
「/www.domain.com」に置換
メールアドレスのドメインのみを置き換える
メールの送受信に短いドメインを使用したいなど、他のドメインのインスタンス(画像URLやリンクなど)を変更せずにメールアドレスのドメインのみを置換することが必要になる場合があります。
「@olddomain.com」で検索
「@newdomain.com」に置換
httpをhttpsに置き換える
MyKinstaでは、プライマリドメインのHTTPをHTTPSにリダイレクトすることができますが、コンテンツ内のすべてのURLを更新したい場合、プライマリドメイン以外に変更したいURLがある場合があります。
「http://domain.com」で検索
「https://domain.com」に置換
独自ドメインを一時的なドメインに置き換える
メールアドレスに変更を加えずに、サイトのデータベース内のあるドメインを別のドメインに置き換える場合は、先頭のスラッシュ(/)に注意し、olddomain.comとnewdomain.comをそれぞれ旧ドメインと新ドメインに置き換えてください。
「/olddomain.com」で検索
「/newdomain.com」に置換