:: wordpressのwp_postsに登録されている記事の一部のテキストを一括で変更する方法 MYSQL

/ , / WEB制作・開発

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/

とりあえずテンプレートはさておき、記事と固定ページの一括置換方法はSQL構文を使うと簡単にできます。
以下を確認してください。Databaseをよく知っている方ならとっても簡単だと思います。

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/” に変換しています。
なお、Wordpressの場合は、PostsもPagesも同じwp_postsのテーブルを使っており、post_typeでページの種類を分けているので、Pagesを変換したい場合は、WHERE post_typeの’post’を’page’に変えてあげればOKです。  

なお、ssh経由とphpMyAdminどちらからでもいけます。

参考にしたサイト↓↓ http://memocarilog.info/wordpress/5789

SNS SHARE

RELATED POSTS

LEAVE A REPLY