WordPressで複数の投稿ページや固定ページの同じ文字列を一括で置換する方法です。
例えばリンクのURL修正とかデザイン用のCSSを一括適用するとか、同じ内容の修正をしたい場合の話です。
なお、プラグイン等は利用しません。MySQL(or MariaDB)、いわゆるデータベースを直接操作します。
そのため超危険です。functions.phpを壊すレベルとは比較にならず、大体サイトとお別れになります。
破壊のレベルにより復旧できるけど、それなりのスキルが必要です。
そもそも何でプラグイン使わないの?
理解してればSQL叩いたほうが早いから。
データベースに接続する
どんな手段でもいいのでデータベースに接続します。普通は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_typeのpageは固定ページ、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に問題なければ実行結果が表示され、その時点で記事の内容は置換されてます。
あとがき
最悪やっちまった人はサーバーの復元機能を利用してデータベースを戻してください。
それで無理なら、たぶんもう無理です。サイトとお別れです。お疲れ様でした。
データベース操作は諸刃の剣。
理解してない人はやっちゃ駄目だよ。
この記事は参考になりましたか?
コメント