WordPressのウェブサイトを管理していて、投稿記事の数か所を変更するのは何の問題もないでしょう。しかし、サイト上の大量の要素を一度に更新したい場合には、WordPressの検索と置換が必要になります。
例えば、HTTPからHTTPSに移行した直後は、WordPressのデータベース内にハードコードされたURL内の「HTTP」をすべて変更する必要があります。また、ドメインを変更した場合には、データベースの参照先をすべて更新する必要があります。このようにWordPressの管理においては、一括検索し、置換する方法を知っていると、大幅に時間を節約できる場面が多数あります。
この記事では、WordPressの検索と置換の概要とどのような場合に必要になるかを説明し、検索と置換を行う5つの方法をご紹介します。
WordPressで検索と置換を実行する方法について動画での解説もご用意しています。
WordPressの検索と置換の概要
WordPressサイトで検索と置換が必要な場面はいくつもあります。よくあるケースは、複数のページや投稿に追加したテキスト(免責事項や経歴など)を置換したいが、どこにあるかわからない場合です。
手動ですべての記事やページからテキストを検索して置換するよりも、WordPressの検索と置換を実行すれば大幅に時間を節約できます。さらに、このテクニックは、テキスト以外にも使えます。
例えば、WordPressの検索と置換は、WordPressデータベース内のURLや画像に対しても可能です。また、以下のような場面でも利用できます。
- 検索エンジン最適化(SEO)キーワードの更新
- 文法やスペルミスの修正
- 特定の単語や特殊文字の削除
- 移行後、HTTP URLをHTTPS URLに更新
- サイトをwwwから非wwwのURLに(またはその逆に)移動
- 古いショートコード、コンテンツ、テキストの文字列の更新
重要な注意を一つ。検索と置換には、「元に戻す」オプションがありません。一度、テキストやその他のコンテンツを置換すると、以前のバージョンには戻せません。元に戻すには、もう一度、検索と置換を行う必要があります。そのため、WordPressの検索と置換を行う前には、必ずバックアップを取ることを強く推奨します。
WordPressの検索と置換を実行するには(5つの方法)
WordPressの検索と置換には様々な方法があります。ここでは、おすすめの5つの方法をご紹介します。
1. MyKinstaの検索と置換ツールを使用する
Kinstaをご利用であれば、MyKinsta組み込みの検索と置換ツールを使用することができます。MyKinstaにログインし、「WordPressサイト」>(サイト名)>「ツール」に移動します。
例として、URLの「http」を「https」に変更してみます。「検索」フィールドに「http」を入力して「検索」をクリックすると、この文字列の出現回数が表示されます。
「検索後に置換する」を選択すると、「以下に置き換える」フィールドが出現します。ここに、置き換えたい文字列やURLのような値を入力します。
「実行後にキャッシュをクリアする」は選択したままにしてください。検索と置換の実行後にサイトのキャッシュが自動的にクリアされることで、訪問者に更新されたバージョンのサイトをすぐに表示することができます。「検索後に置換する」をクリックして完了です。
検索と置換が完了すると、確認ダイアログに置換が行われた数が表示されます。確認を終えたら、「キャンセル」をクリックして、検索と置換ツールを終了します。
2. WordPressの検索と置換プラグインを使用する
Kinstaを利用していない場合、または手動でデータベースを検索せずにWordPressの検索と置換を実行したい場合は、プラグインを使用してください。人気のあるソリューションにBetter Search Replaceプラグインがあります。
Better Search Replaceプラグインは、Delicious BrainsのWordPressチームが開発したプラグインで、この記事の後半で紹介するinterconnect/itのPHPスクリプトにヒントを得ています。
Better Search Replaceプラグインの機能の一部をご紹介します。
- すべてのテーブルのシリアライゼーションをサポート
- 特定のテーブルを選択可能
- 更新されるフィールド数を確認できる「ドライラン」実行オプション
- 実行中のWordPress以外のサーバー不要
- WordPressマルチサイト互換
このツールには多数の使用例が考えられます。下の例では、「Better Search Replace」のオプションを使用してハードコードされたHTTP参照を検索し、HTTPSバージョンで更新します。
また、このプラグインには有料バージョンもあり、さらに多くの機能を利用できます。このプラグインの詳細な使用方法については、公式ドキュメントをご覧ください。
もう一つの検討に値するツールにSearch Regexプラグインがあります。
URLやコンテンツの一括更新など、基本的な検索と置換を行うには十分なプラグインです。Better Search Replaceプラグインほどの人気はなく、広く使われていませんが、積極的にメンテナンスされている評価の高いツールで使い方も簡単です。
どちらののソリューションも、WordPressリポジトリからダウンロードできます。または、WordPressの管理画面の「プラグイン」>「新規追加」で検索できます。
3. interconnect/itのSearch Replace DB PHPスクリプトを使用する
WordPressサイトに新しくプラグインをインストールしたくない場合もあるでしょう。その場合、WordPressの検索と置換を行う別の方法として、interconnect/itが提供する無料のPHPスクリプト「Search Replace DB」があります。
注意点として、このスクリプトが何をしているかわからないまま実行すると、WordPressのウェブサイトを壊す可能性があります。この方法に不安を感じる場合は、まず開発者やウェブ管理者に相談してください。
このスクリプトは2011年から存在しており、開発者は積極的にアップデートを行っています。このスクリプトを使用するには、zipファイルをダウンロードして「search-replace-db-master」フォルダを解凍し、任意の名前に変更してください。
この例では名前を「update-db-1551」に変更しました。
次に、FTPまたはSFTPを使用して、ウェブサーバーの公開ディレクトリにファイルをアップロードします。通常、これは「/wp-content」フォルダと同じディレクトリです。次に、ブラウザで「https://domain.com/update-db-1551」のように秘密のフォルダに移動します。
スクリプトは自動的にデータベースフィールドの検索と置換を試みます。しかし、詳細が正しいかどうか、また、意図したデータベースに対して検索と置換の操作を実行しているかどうかを確認する必要があります。
最初に「dry run」をクリックして、スクリプトが何を更新し置換するかを確認します。確認して準備ができたら、「live run」をクリックして、データベースの更新とWordPressの検索と置換を実行します。
セキュリティ上の理由から、作業終了後、このスクリプトの削除が非常に重要です。削除するには「delete me」ボタンをクリックします。
このスクリプトを残しておくと、ウェブサイトが攻撃にさらされる可能性があります。フォルダやスクリプトが完全に削除されているかどうか、ウェブサーバーを再度、確認してください。
4. WP-CLIを使用して直接検索と置換を行う
WordPressの検索と置換を行うもう一つの方法は、WP-CLIを使用して直接、検索と置換を行う方法です。これは、WordPress開発者のための選択肢になります。
Kinstaのお客様には、WP-CLIを使用できるSSHアクセスを提供しています。WP-CLIに慣れていない方は、詳細な解説記事「ターミナルからのWordPressの管理」や、便利なSSHコマンドのリストをご覧ください。
コマンドの例を以下に示します。
wp search-replace 'http://example.dev' 'http://example.com' --precise --recurse-objects --all-tables
wp search-replaceコマンドで利用できるその他のパラメータについては、公式のWP-CLIドキュメントで詳しく説明されています。また「検索と置換に関するWP-CLIガイド」も参照してください。
5. phpMyAdminでMySQLの検索と置換クエリの実行する
コードでの操作に慣れていてプラグインを使わずにWordPressのデータベースで検索と置換を実行したい場合は、phpMyAdminのMySQLクエリを使うこともできます。この方法は、プロのWordPress開発者向けの方法です。
レンタルサーバーがcPanelを使用している場合は、「データベース」の中から「phpMyAdmin」を選択します。
Kinstaのお客様は、MyKinstaからphpMyAdminに直接アクセスできます。まずサイトを選択します。次に「情報」タブの画面を「データベースへのアクセス」セクションまでスクロールし、「phpMyAdminを開く」をクリックします。
新しいタブが開き、phpMyAdminのログインページが表示されます。データベースのユーザー名とパスワードを入力し、「Go」を選択します。
phpMyAdminにアクセスしたら、データベース名を検索します。データベース名が分からない場合は、ファイルマネージャーに移動し、public_htmlフォルダの下のwp-config.phpファイルを開き、「define(‘DB_NAME’, ‘データベース名’);」行を探します。
次に、phpMyAdminから「SQL」タブを選択します。
以下のコードスニペットを追加してください。
update TABLE_NAME set FIELD_NAME = replace(FIELD_NAME, 'Text to search', 'Text to replace it with');
「Go」ボタンをクリックして、SQLクエリを実行します。処理が完了すると、変更されたインスタンス数を示す成功メッセージが表示されます。WordPressのサイトにアクセスして、検索と置換が成功したことを確認します。
まとめ
SEOのキーワードを更新する場合やすべての投稿の特定のテキストを置き換える場合、一括検索と置換の方法を知っていると非常に便利です。WordPressの検索と値感にはいくつかの方法があります。
この記事では以下の5つの方法をご紹介しました。
- MyKinstaで当社独自の検索と置換ツールを使用する
- WordPressの検索と置換プラグインを使用する(Better Search ReplaceやSearch Regexなど)
- interconnect/itのSearch Replace DB PHPスクリプトを使用する
- WP-CLIを使用して直接検索と置換を行う
- phpMyAdminでMySQLクエリを実行する
【4つの方法】WordPressサイトでコメントを一括削除するには