カスタムフィールドのmeta_keyの中身を一括変更

Web-log・ココログ関連,WordPress

読書ノートをカード形式で作成しています。読書カードは定型フォーマットなので、「Custom Field Template (カスタムフィールドテンプレート)」と言うプラグインを使っています。

この頃は、カスタムフィールドのデータが、MySQLのデータベースにどのように格納されているか、意識していませんでした。しかし、入力したカスタムフィールドの取り扱いの容易さを考えると、次の記事の様に変更した方が良いと考えました。

この記事では、どのような形式に変更するかを書いただけで、具体的な記述はありませんでした。

実際には、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メニューなどから実行して下さい。

[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データベースを壊してしまう可能性があります。

カスタムフィールドテンプレートを使っている場合は、設定カスタムフィールドテンプレートの設定部分を忘れずに変更して下さい。正しく変更しないと、表示されなくなってしまいます。

Posted by お市のかた