magic-field2 から advanced custom field 2への移行方法

2019/3/2

昔作ったwordpressサイトの中にmagicfield2(以下mf2)を使っているものがいくつかあって、mf2は更新が止まっているらしく、phpのバージョンをアップしたりするとエラーが出るようになったので、advanced custom field(以下acf)へ移行する作業をすることにしました。

acfをインストールし、mf2と同じフィールド名でカスタムフィールドを作成した後、mf2を停止させるとテキストボックス等のシンプルなフィールドに関してはそのまますんなり移行できました。
問題になるのが画像や繰り返しフィールドなど、少し特殊な形式のフィールドです。
これらに関しては、acfで対応するであろうタイプのフィールドを作成しても、そのままではフィールドが空になってしまうようです。

ですが、mf2を停止しても、記事ごとにカスタムフィールドの値はそのまま残っているので、一旦過去の記事に関しては
mf2によって作成されたカスタムフィールドをwordpress標準の関数で呼び出しておくことにしました。

    get_post_meta( get_the_ID(), 'repeater_field_name', false );

その後、acfでフィールド名を変えたカスタムフィールドを作成し、今後はそちらを使用し、acfのフィールドに値が入っている場合はmf2のフィールドを出力しないようにしておけば、過去のフィールドはそのまま表示されるし、acfのフィールドを使い更新すれば過去の記事でも更新可能、という感じにできそうです。

開発を止めるのならオフィシャルで移行ツールなんかを作るべきだと思うのですが…。

もしもっと良い方法があれば教えてください…。

参考リンク

Convert existing Magic Fields to ACF fields

【WordPress・カスタムフィールド】値・キーを取得して表示/値の更新など

質問やご指摘など気軽にどうぞ

コメントを投稿する