WordPressを自作する上でもはや欠かせないプラグインの一つが、「Advanced Custom Fields」。
名前を変更しようと思って、WordPress管理画面のメニュー「カスタムフィールド 」から該当のフィールドグループを選択して、編集したところ…
すでに登録済みのデータが反映されなくなってしまった…
そして、名前を変更前に戻したら、元通り。ホッ。
ちなみにラベルは何に変更しても問題ない。
データベースにすでに登録された情報で、そのキーを変更するにはデータベースを変更しなくてはならないということか。
そんなプラグインないかな、と検索したが記事は見つけてもプラグイン自体がなかったり。もはや、直書きで対処することにした。
sql文を書いて、直編集!
ここからは完全自己責任でお願いします。
ちなみに、WordPress のバージョンは5.6で試しました。
例)「diary」という名前を「 journal」 に変更する場合
global $wpdb;
$sql = "UPDATE wp_postmeta SET meta_key = 'journal' WHERE meta_key = 'diary'";
$wpdb -> query($sql);
$sql = "UPDATE wp_postmeta SET meta_key = '_journal' WHERE meta_key = '_diary'";
$wpdb -> query($sql);
2つのsql文を実行するのがポイント
「diary」→「journal」と、名前の最初にアンダースコアをつけて、「_diary」→「_journal」、これら2つを上書きする。
反映後は、sql文を忘れずに削除する
無事に変更されて、データもすべて新しい名前に紐づいていることを確認したら、追加したsql文は忘れずに削除して終わり。
さくっと完了しました。