カスタムフィールドのmeta_keyの中身を一括変更
読書ノートをカード形式で作成しています。読書カードは定型フォーマットなので、「Custom Field Template (カスタムフィールドテンプレート)」と言うプラグインを使っています。
- WordPressで読書ノート(読書カード)[追記あり] : プラスα空間 (2012年4月21日)
この頃は、カスタムフィールドのデータが、MySQLのデータベースにどのように格納されているか、意識していませんでした。しかし、入力したカスタムフィールドの取り扱いの容易さを考えると、次の記事の様に変更した方が良いと考えました。
- MySQL実践 : プラスα空間 (2014年4月16日)
この記事では、どのような形式に変更するかを書いただけで、具体的な記述はありませんでした。
実際には、MySQLのテーブル(wp_postmeta)の"meta_key"を、次の書き換え規則で変更しています。
変更前 | 変更後 |
---|---|
書名 | cft_rn_title |
著者 | cft_rn_author |
出版年 | cft_rn_date_publication |
出版社 | cft_rn_publisher |
価格 | cft_rn_price |
読み始めた日 | cft_rn_date_start |
読み終えた日 | cft_rn_date_finish |
心に残った言葉 | cft_rn_impression_words |
感想 | cft_rn_book_report |
ここで、"cft_"は"Custom Field Template"、"rn_"は"Reading Notepaper"の意味を持たせています。
この書き換えを、手作業でするのは大変ですし、間違いが伴う可能性が高いです。
そこで、MySQLのSQL文を書いて、一括変更する事にしました。phpMyAdminの
メニューなどから実行して下さい。[sql]
UPDATE `wp_postmeta` SET `meta_key`=’cft_rn_title’ WHERE `meta_key`=’書名’;
UPDATE `wp_postmeta` SET `meta_key`=’cft_rn_author’ WHERE `meta_key`=’著者’;
UPDATE `wp_postmeta` SET `meta_key`=’cft_rn_date_publication’ WHERE `meta_key`=’出版年’;
UPDATE `wp_postmeta` SET `meta_key`=’cft_rn_publisher’ WHERE `meta_key`=’出版社’;
UPDATE `wp_postmeta` SET `meta_key`=’cft_rn_price’ WHERE `meta_key`=’価格’;
UPDATE `wp_postmeta` SET `meta_key`=’cft_rn_date_start’ WHERE `meta_key`=’読み始めた日’;
UPDATE `wp_postmeta` SET `meta_key`=’cft_rn_date_finish’ WHERE `meta_key`=’読み終えた日’;
UPDATE `wp_postmeta` SET `meta_key`=’cft_rn_impression_words’ WHERE `meta_key`=’心に残った言葉’;
UPDATE `wp_postmeta` SET `meta_key`=’cft_rn_book_report’ WHERE `meta_key`=’感想’;
[/sql]
次の本を参考にしています。
[amazonjs asin="4883378012" locale="JP"]wp-config.phpで、$table_prefixを変更していたり、マルチサイト運用をしている時は、"wp_postmeta"の名前を変更して下さい。
また、バッククオート(`)とシングルクオート(')を間違えると動きません。
当然ですが、WordPressのデータベースを直接変更する事になるので、バックアップなどの対策をとっておいて下さい。最悪、WordPressデータベースを壊してしまう可能性があります。
カスタムフィールドテンプレートを使っている場合は、
→ の設定部分を忘れずに変更して下さい。正しく変更しないと、表示されなくなってしまいます。
ディスカッション
コメント一覧
まだ、コメントがありません