複数の記事を一括で置換する方法 (SQL)

[WordPress] 複数の記事を一括で置換する方法 (SQL)

※ 当サイトは広告を含みます。

WordPressで複数の投稿ページや固定ページの同じ文字列を一括で置換する方法です。
例えばリンクのURL修正とかデザイン用のCSSを一括適用するとか、同じ内容の修正をしたい場合の話です。

なお、プラグイン等は利用しません。MySQL、いわゆるデータベースを直接操作します。
そのため超危険です。functions.phpを壊すレベルとは比較にならず、大体サイトとお別れになります。

管理人

破壊のレベルにより復旧できるけど、それなりのスキルが必要です。

りさ

そもそも何でプラグイン使わないの?

管理人

理解してればSQL叩いたほうが早いから。

MySQLに接続する

どんな手段でもいいのでMySQLに接続します。普通はphpMyAdminを使います。

phpMyAdmin

SQLを作る

実行するためのSQLを作成します。投稿ページと固定ページの全てを対象にするなら以下です。
ちなみに記事データはwp_postsテーブルpost_contentに入ってます。post_typeは種類です。


UPDATE
  `wp_posts`
SET
  `post_content` = REPLACE(`post_content`, '置換前の文字列', '置換後の文字列')
WHERE
  `post_type` = 'page' OR `post_type` = 'post'

WHEREの条件を変更すれば対象を絞れます。post_typepageは固定ページ、postは投稿ページです。
また、置換対象の文字列がHTMLやCSSの場合、入力文字列によってはエスケープが必要です。

サンプルを置いておくので参考にしてください。


UPDATE
  `wp_posts`
SET
  `post_content` = REPLACE(`post_content`, '<br class=\"br-pc\">', '<br>')
WHERE
  `post_type` = 'page' OR `post_type` = 'post'

SQLを実行する

次にSQLを実行します。phpMyAdminからSQL選択してください。
入力欄が表示されたら、そこに先程のSQLを貼り付けて実行ボタンを押します。

SQL実行
管理人

SQLに問題なければ実行結果が表示され、その時点で記事の内容は置換されてます。

あとがき

最悪やっちまった人はサーバーの復元機能を利用してデータベースを戻してください。
それで無理なら、たぶんもう無理です。サイトとお別れです。お疲れ様でした。

管理人

データベース操作は諸刃の剣。

りさ

理解してない人はやっちゃ駄目だよ。

この記事は参考になりましたか?

関連記事

コメント

この記事へのコメントはありません。