ACFでインポート失敗 – 「投稿タイプ acf が有効ではありません」の原因と対処法

カスタムフィールド

Advanced Custom Fieldsで、インポートに失敗したときの対処法をまとめた記事になります。

インポートに失敗する

移行前のサイトでカスタムフィールドのデータをxml形式でエクスポートして、
新規サイトでWordPressインポーターを利用してxmlファイルをインポートした結果
「投稿タイプ acf が有効ではありません」
というエラーメッセージが表示されインポートに失敗してしまいました。

インポートに失敗する原因

バージョン4系統と、5系統では、データベースへの保存方法が異なる為です。

バージョン4系統では「acf」という単一の名前と紐づいていますが、
5系統では「acf-field-group」「acf-field」の2つに分かれています。

私の旧サイトと新サイトの、Advanced Custom Fieldsのバージョンを確認した結果、
旧サイトはバーション4.3.9
新サイトのバーションは、5.8.11でした。

以上がインポートに失敗した原因となります。

インポートに失敗するときの対処法

新サイトと旧サイトのAdvanced Custom Fieldsのバージョンを一致させます。

古いバージョンは、ここで手に入れることができます。

フローは次の通りです。

  • 新サイトに、旧サイトと同じバージョンを、インストール
  • バージョンを一致させたあと、xmlファイルをインポート

上記を実行することで、データ移行には、成功したはずです。

しかし、このままACFをアップデートすることは控えてください。

おそらくデータが表示されなくなります。

ACFをアップデートする方法

念のため、バックアップを取得してから始めてください。

ACFをアップデートするフローは次の通りです。

  • Advanced Custom Fieldsをアップデート
  • アップデート後、データベース更新通知が表示されるので更新する。

データベース更新通知が表示されない場合

バックアップを取得してから始めてください。

データベースの値を変更して、強制的にデータベース更新通知を表示させます。

  • WordPressで使用しているデータベースにphpMyAdmin等でアクセス
  • wp_optionsテーブル内から、「acf_version」を検索
  • option_valueの値を、「4.4.12」に変更
  • wordpress管理画面に、データベース更新通知が表示されるので、更新する。

option_value値が「5」より高い場合、すでにアップグレードが実行されているようです。

4.4.12 に変更することで、更新通知を再表示させています。

ここに詳しい情報がありました

最後に

手作業でカスタムフィールドを再登録してもいいと思いますが、数がたくさんあり手間なので解決策を探してみました。

この記事が少しでもお役に立てれば幸いです!

Akira

Akira

未経験から制作会社に入社し3年ほど技術周りをやってます。最近はJamstackに興味があってこのサイトもShifterというサービスを使用してJamstack化しています。

特集記事

TOP