ジユウメモメモ

気になるガジェットや映画のはなしをメモメモ

Better Search Replace

WordPress Related Postsの関連記事タイトルをBetter Search Replaceを使って更新する方法

WordPressサイトのSSL化に伴う内部リンクの一括置換にも便利なプラグイン

WordPress Related Postsの関連記事タイトルはリンク先記事のタイトル変更に連動しない

 WordPressを導入したサイトを管理していて、関連記事を表示するプラグイン「WordPress Related Posts」をインストールして使用していたのだが、「リンク先の関連記事のタイトルを変更すると、リンク元のテキストが変更後のタイトルに更新されず、関連記事選択画面(WP Related Postsプラグインではリンクを自動で表示する他、任意で関連付けたい記事を選択できる)の検索結果にも変更が反映されない」という問題があった。

WordPress Related Posts

関連記事を表示させるプラグイン「WordPress Related Posts」

WordPress Related Postsの表示例

WordPress Related Postsの表示例。関連記事は自動で表示されるほか、任意でも選択できるのが特徴。

WordPress.org:WordPress Related Posts

不動産業界を例にすると、マンションやアパートの物件名は、物件の所有者や管理会社が変わると、変更されることがある。不動産検索サイトをWordPressで作っていて、記事タイトルに物件名(通販サイトの場合は記事タイトル=商品名)を記述する場合、物件名が変わった際は記事のタイトルを書き換えれば新しい物件名にできるのだが、WordPress Related Postsプラグインの機能で別の物件ページ(その物件の近所にある物件、同じ沿線にある物件のページ)に表示済みのリンクのタイトルは変更前の物件名のまま。タイトルを手動で書き換える機能はなく、すっきりしない状態になってしまう。

どうしたものかと困っていたのだが、データベースを編集するプラグインを使うことで修正できることがわかった。同じ現象で困っている人がいるかもしれないのでメモ。

※「WordPress Related Posts」プラグインに関してはリリースされてから時間が経っているためここでは使い方に関しては説明を省きます。 また、今回の関連記事タイトルの修正作業は「WordPress 4.9.10」で行っています。WordPress Related PostsのWordPress 5環境での動作は未確認です。

当記事作成時ではWordPress Related Postsプラグインは公式にはWP 5環境でテストされておらず、今後の正式対応予定があるのかはわかりません。これから関連記事表示機能のプラグインを導入される際は、WordPressのプラグイン新規追加画面で「similar」「related」といったワードの検索結果から最終更新日が近いプラグインを検討された方がいいかもしれません。

当記事で紹介する「Better Search Replace」は「DRY RUN」機能で操作ミスを防ぐことができますが、データベースを編集します。念のため、必要に応じてデータベースのバックアップをとっておいてください。

WordPressの管理画面からデータベースを一括置換できるプラグイン Better Search Replace

WordPressプラグインの「Better Search Replace」はWordPressの管理画面からデータベース上のテキストの検索、一括置換を実行できる。検索/置換を実行するテーブルを任意で選択できる他、チェックを入れておけば操作を誤っても置換を実行しない安心機能があるのが便利。WordPress 5.1以上に対応しているので、これからも長く使えそうだ。

Better Search Replace

WordPressの管理画面からデータベースの置換を行えるプラグイン「Better Search Replace」

WordPress.org:Better Search Replace

操作画面は英語だが、今回の件に関してのみ言えば、画面上で触る箇所は4箇所程度なので難しくはない。

WordPressのプラグイン新規追加画面で「Better Search Replace」と入力し、インストール、有効後、管理画面のサイドバーの「ツール」から「Better Search Replace」を選択すると操作画面が表示される。

Better Search Replaceへのアクセス

プラグイン有効後の操作はWordPress管理画面サイドバーの「ツール」から

Better Search Replaceの基本的な使い方

置換対象となる語句があるテーブルを確認する

 まず、置換対象となる語句がどのテーブルにあるか検索して確認する。操作画面上部にある「Search/Replace」タブの、「Search for」テキストフィールドに検索したい語句を入力、「Select tables」のリストの中から、検索対象とするテーブルを選択、「Run as dry run?」にチェックをした状態で「Run Search/Replace」ボタンをクリックする。このとき注意しておきたいのが、「Run as dry run?」にチェックをしておくこと。チェックをしておくことで実行されるのは検索のみとなるため、操作ミスを防ぐことができる。

Better Search Replaceの操作方法

Better Search Replaceの基本的な操作で触るところは4箇所。

WordPress Related Postsのデータは「wp_postmeta」にあるのでここではそのテーブルを選択して検索を実行する。

Better Search Replaceの操作方法

WordPress Related Postsのデータを置き換えたいので「wp_postmeta」テーブルを選択し検索を実行する

置換したい語句が選択したテーブル上にある場合、 「DRY RUN:1 tables were searched, 14 cells were found that need to be updated, and 0 changes were made.(1つのテーブルで検索し、14のセルでヒット、置き換えなし)」といった表示がされる。

Better Search Replaceの検索結果画面

選択したテーブルに置換したい語句が存在することを確認

置き換えたい語句を入力し、置換を実行する

 置換したい語句があるテーブルが確認できたら、次に「Replace with」テキストフィールドに置き換える語句を入力し、「Run as dry run?」のチェックを外して「Run Search/Replace」ボタンをクリックすると、置換される。

Better Search Replaceの操作方法

置換実行の準備ができたら「Run as dry run?」のチェックを外してボタンをクリック

Better Search Replaceの置換実行後画面

見つかった置き換え対象語句と同じ数だけ置き換えが実行された

置換実行後、古いタイトルで関連記事のリンクが表示されているページをリロードすると、タイトルが置換されているのが確認できる。

今回の場合、一つ注意しておきたいのが、wp_postmetaにはカスタムフィールドの値なども入っているため、置換を実行すると、WordPress Related Posts以外の場所の語句も置換されるということ。投稿画面でカスタムフィールドに変更前の記事タイトルと同じ語句を入力していると、それらも書き換わってしまう(例えば、カスタムフィールドに「物件名:マンションA / 旧物件名:アパートメントA」と入力してある状態で「アパートメントA」を「マンションA」に置換すると、「物件名:マンションA / 旧物件名:マンションA」となってしまう)ので、そこは手動で投稿画面から修正する必要がある。

 Better Search Replaceは以前にもサイトをhttpからhttpsにした際に、投稿記事中に記載してある内部リンクの置換にも使用して便利だった。同様の機能を提供するプラグインに「Search Regex」があるが、最終更新から数年が経過している。Search Regexから移行するのにピッタリのプラグインだろう。

タグ:
スポンサーリンク
この記事をシェアする