MySQLからWordPressの記事本文を一括置換する方法
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 のような記事一つを置換して確認してもいいかもしれない。