Advanced Custom Fieldsの4系から5系へのアップグレードのトラブル解消

Advanced Custom Fieldsを4.4.9から5.12.2にアップグレードすると、管理画面で項目が全て消えてしまい、フロント側も表示されなくなってしまうという現象を解決しました。

Advanced Custom Fieldsの本家のこちらに手順が解説されているのですが、どういった理由はわかりませんが、3番目のDatabase Upgrade Requiedが表示されないのです。

仕方なく、元の4系へダウングレードして解消していたのですが、やはりプラグインはセキュリティ面からも最新の状態にしておきたいです。というわけで色々調べていたら、phpMyAdminでwp_optionsテーブルの値を変更することで対応できるということが分かりました。こちらに、その解決方法がありました。

仕組みはこうです。4系ではwp_postsテーブルのpost_typeは「acf」となっていて、それをフィールドグループとして管理していました。

一方、5系ではフィールドグループを「acf-field-grou」で管理するように変更されている上に、ラベルに関しては、post_type「acf-field」で管理するようになったのです。

このため、データベースを更新する必要があるのですが、一旦アップグレードをしてしまうとwp_optionsテーブル内のoption_name「acf_version」のoption_valueが「5.12.2」となってしまっていて、Advanced Custom Fieldsが既に5系になっているのでデータベースの更新は必要ないと判断し、上記のDatabase Upgrade Requiedが表示されなかったようです。

ですので、option_name「acf_version」のoption_valueを「4.4.9」などと変更し、管理画面をリロードするとDatabase Upgrade Requiedが表示され、管理画面はもちろん、フロント側も表示されるようになりました。

本番でいきなりこの作業をするのは、怖かったので、テストサイトを一旦用意し、そちらでテストし、しっかり更新できたのを確認した後、本番で作業しました。

以上です。