WordPressで投稿している記事の特定の文字列を一括で変更する方法をメモ。
まだブログを公開して間もないウェブサイトであれば1ページずつ編集するのも一つのやり方だけど100ページとかあったら結構大変ですよね。
そこで調べたら一瞬で対応できました。
やり方はなんてことはない、wp_postaテーブルのpost_typeに対してREPLACEを使います。
WordPressでよくあるディレクトリの階層構造を変更する時をイメージすると分かりやすいかも。
ディレクトリ
変更前↓↓
/user/local/apache/htdocs/grooving-earth
変更前↓↓
/user/local/apache/htdocs/grooving-earth/wp wpというフォルダを1つ作りました。
(複数のサイトを運営されている方はよく使うと思います。)
上記のようにディレクトリを変更したことに伴い、テンプレートと記事、ページのデータに書かれている画像パスなどを変更しなければなりません。
(一般的にはsearchreplacedbというファイルを使うことで簡単にできます。こちらの使い方はたくさんのブロガーさんが分かりやすく説明されているので割愛します。) https://interconnectit.com/products/search-and-replace-for-wordpress-databases/
1 2 3 |
UPDATE wp_posts SET post_content=REPLACE(post_content, 'grooving-earth/wp-content/' , 'grooving-earth/wp/wp-content/') WHERE post_type='post' ; |
UPDATE文を使っています。2行目のpost_content=REPLACE(post_content, ‘grooving-earth/wp-content/’ , ‘grooving-earth/wp/wp-content/’)の箇所で一括置換をしています。 “grooving-earth/wp-content/” → ”grooving-earth/wp-content/wp/” に変換しています。
1 2 3 |
UPDATE wp_posts SET post_content=REPLACE(post_content, 'grooving-earth/wp-content/' , 'grooving-earth/wp/wp-content/') WHERE post_type='page' ; |
なお、ssh経由とphpMyAdminどちらからでもいけます。
LEAVE A REPLY