「すべての記事に共通で書いている文章が間違っていた」
「記事に埋め込んだあのリンク先を変えたい」
WordPress に投稿した記事を確認していて、誤字や脱字、リンク先の間違いに気付いたことはありませんか?
それが 1 箇所ならともかく、数十ページや数百ページとなると悲惨ですよね。
1 ページずつ、ちまちま修正していくのはとても大変です・・・。
今回は、投稿したすべての記事の特定の文字列を一括で置き換える方法を紹介します。
置き換える前にチェックすること
一括で置き換えるので、当然、置換をミスった場合は致命的です。
作業をする前に以下を確認しておきましょう。
・該当の文字列をすべて置換しても問題ないか
・作業前にバックアップを取っているか
例えば、「http」を「https」に変更しようと思った場合、安易に置換元の文字列を「http」にしてしまうと危険です。
既に、記事の中に「https://」の URL があると、そこにも影響して「httpss://」に置換してしまうからです。
http => https
この場合は「http://」を「https://」に置換するのがベターですね。ドメインまで指定しておけば、なお安心です。
http:// => https://
http://example.org => https://example.org
よって、事前に対象の文字列が意図しているものかどうか確認しておきましょう。
またミスに気付いた時、作業前の状態に戻せるように、必ずワードプレスのバックアップを取っておきましょう。
一括で変更する方法
ワードプレスの記事はサーバ上のデータベースに保存されています。
よって、データベースの中身を書き換えてしまうのが簡単です。
主要なレンタルサーバには「phpMyAdmin」というデータベースを操作するツールが用意されているので、これを使いましょう。

このツールで、記事の一部分を置換する SQL 文を実行します。
例えば、各記事の最後に以下の文章を書いていたつもりが、
最後まで文章を読んでくださってありがとうございます
よくよく確認してみると、以下のように「読んで腐って」になっていたなんてことがあるかもしれません。
最後まで文章を読んで腐ってありがとうございます
読者への影響はあまりないと思いますが、なんとも恥ずかしいですよね・・・。
早く直しちゃいましょう。
phpMyAdminで一括変換
一括で文字列を置換するには、以下の SQL 文(クエリ)を作成します。
(テーブル名はサーバによって最初の wp_ の部分が異なる場合がありますので注意してください)
1 2 3 4 | UPDATE wp_posts SET post_content = REPLACE(post_content, '最後まで文章を読んで腐ってありがとうございます', '最後まで文章を読んでくださってありがとうございます') |
phpMyAdmin の上の「SQL」というメニューをクリックし、次の画面のテキストエリアに上記の SQL を入力します。

「実行」ボタンをクリックしたら置換が開始されます。
もう少し安全策を取るなら、WHERE 句に「post_status = ‘publish’」や「post_type = ‘post’」などを追加しても良さそうですね。
まとめ
ワードプレスの記事を一括で書き換える方法を紹介しました。
今回はデータベースを直接書き換える方法を選択しましたが、プラグインで書き換える方法など他にも選択肢はあります。
中にはレンタルサーバの契約はしたものの、データベースを触ったことがない人もいるでしょう。
無理にデータベースの操作を覚える必要はありませんが、長くワードプレスを使っていくなら覚えて損はありません。
何かあった時に、柔軟に対応できるようにしておくと安心ですね。