MySQLからWordPressの記事本文を一括置換する方法

Last modified date

wordPressで既に公開済みの記事本文をデータベースから一括置換するには

WordPressで過去に公開した記事の内容を一括で変換したいことがある場合、1記事ずつ更新していくのは大変なので、そういう場合はデータベースから直接書き換えるのが、おすすめであるぞ。

UPDATEとREPLACEを使用して直接記事本文を書き換える

UPDATE文とREPLACE文を組み合わせることで、探した記事を一括で変換することが可能である。

UPDATEの使い方

UPDATE  テーブル名
SET    列名 = 値 
WHERE 更新する行を特定する条件;

UPDATEはテーブル名を指定して、列名を指定した値に、その名の通りアップデートする文なのである。

列名の該当する場所はいつものwhere文で指定することが可能。

REPLACEの使い方

REPLACE('ライデイン', 'ライ', 'ギガ')
//結果
//ギガデイン

REPLACE文は、入れ替える対象の文、対象の文字、入れ替える文字の順に並べるのだ。

この場合、ライデインの「ライ」を「ギガ」に書き換えたのである。

WordPressの記事本文が保存されているwp_postsを操作する

実際に置換する場合の例

上で紹介した、UPDATE文とREPLACE文を使って置換してみる。

WordPressの記事本文が入っているテーブルはwp_postsなので、ここを指定してUPDATE文とREPLACE文で本文を置換する。

テーブル名は「wp_posts」、本文が入っている列は「post_content」だ。

例えば、下のUPDATE文だと、

UPDATE wp_posts
SET post_content=REPLACE(post_content, '324円' , '330円')
WHERE post_type='price';

wp_postsにある、
post_typeがpriceの
記事の中身の324円を330円に変換する。

という文章になる。

WordPressの記事を入れ替える

UPDATE wp_posts
SET post_content=REPLACE(post_content, '入れ替える対象' , '入れ替える文字')
-- where文で条件を記入
WHERE post_type='price'

データベースを置換する際の注意点

データベースは一度行った処理をもとに戻すことはできないので、必ず、バックアップを取るのだ。

いきなり本番環境をバックアップ無しで置換するような、無謀な勇者にはならないように注意するのであるぞ。

そして置換する場所もいきなり、ポストタイプのような広範囲の指定の仕方ではなく、例えばpost_id = 45 のような記事一つを置換して確認してもいいかもしれない。

魔王様

コメントを残す

メールアドレスが公開されることはありません。

Post comment