WordPressの記事タイトルを一括置換した方法。phpMyAdminにログインしてクエリ操作で一括置換

サイトマップ | 書物の回想をみてみると記事タイトルに誤字があったり、小文字のままだったりしたのでphpMyAdmin(のSQL)を使って修正しました。ちなみにすでに修正済みです。

スポンサーリンク

なぜSearch Regexを使わなかったのか

WordPressには「Search Regex」という記事のタイトルや本文を置換できるプラグインがありましてこのプラグインを使ってタイトルだけ置換しようとしたんですができませんでした。

投稿(コア&カスタム)を選ぶとタイトルと本文を検索するのでタイトルだけの置換というのができませんでした。投稿メタ情報で絞り込みをかけるとタイトル以外のメタ情報も拾ってしまうので結局Search Regexをつかってタイトルだけ置換はできませんでした。

2023年8月22日 追記

Search Regexはタイトルのみの置換はできないと思っていたのですが、普通にできることがわかりました。絞り込みの項目で「タイトル」を指定すればタイトルだけ置換することができます。なのでわざわざデータベースを使う必要はありませんでした(がデータベースでクエリ操作を行うと非常に高速に処理できるメリットはあります。)

スポンサーリンク

phpMyAdminでSQLをつかって記事のタイトルだけ修正

phpMyAdminでWordPress記事のタイトルを置換する方法はデータベースを直接変更する方法なのでちょっと難しいかもしれませんが、慣れると結構簡単です。

今回はSQLを使ってデータベースからWordPressの記事タイトルを修正しますのでレンタルサーバーの管理画面からphpMyAdminにログインして「SQL」という項目を選択します。SQLの入力欄にコードを書いて実行ボタンをおすとSQLが実行されてデータベースが更新されます(UPDATE文を使った場合に更新されるという意味です)

タイトルを修正するSQL文

UPDATE wp_posts SET post_title = REPLACE(post_title, 'python', 'Python') WHERE post_type = 'post' AND post_title LIKE '%python%';

このSQLコードは、WordPressデータベース内の”wp_posts”テーブルの”post_title”カラムに含まれる文字列中の”python”という部分を見つけて、それを”Python”という文字列に置き換えるクエリです。wp_postsはテーブル名になりますので実際にブログで使用しているテーブル名にする必要があります。

「WHERE post_type = ‘post’ AND post_title LIKE ‘%python%」という条件は”post_type”カラムが値として”post”であり、かつ”post_title”カラムの値に”python”という部分が含まれる場合にのみ、更新が行われることを意味します。

とりあえずこのコードでもいいのですが、大文字と小文字を区別せずに検索してしまうので区別したい場合は次のようにします。

UPDATE wp_posts SET post_title = REPLACE(post_title, 'python', 'Python') WHERE post_type = 'post' AND post_title COLLATE utf8_bin LIKE '%python%';

タイトルに指定の文字が含まれているか検索するSQL文

さっきはタイトルを置換するコードを説明しましたが、いきなり置換すると失敗したときが怖いので一度検索してみるといいかもしれません。タイトルに指定の文字が含まれているか検索するSQL文を使うと該当記事がリストアップされます。

SELECT * FROM wp_posts WHERE post_type = 'post' AND post_title COLLATE utf8_bin LIKE '%python%';

SQLの操作になれたらあとは地道に実行していくだけでしたね。

誤字や小文字大文字の違いで検索順位が変わる?

多少誤字があっても検索順位が変わることはないみたいです。

タイトルの修正を終えての感想

今回はphpMyAdminを使ってSQLでタイトルの修正をおえたわけですが、これが本文の修正となると話が変わってきます。たとえば「python」を「Python」に変えたい場合に一括置換してしまうと、urlに”python”という文字が含まれていた場合はこれも大文字に変換されてしまいます。なので本文の誤字修正は一括置換できないのでひとつひとつ手作業になってしまいとんでもなく膨大な作業量になります。そのためわたしは本文修正はあきらめました。

コメント

タイトルとURLをコピーしました