【Advanced Custom Fields】更新したらページが表示されない、フィールドがなくなった時の対応方法

プラグインは常に最新のものが良いと言われているので、何気なく「更新」があると押してしまう場合が多いと思います。【Advanced Custom Fields】をアップデートしたらフィールドがなくなった、ページが表示されない、真っ白になったという場合の対応方法を書いてみたいと思います。

スポンサーリンク

はじめに

【Advanced Custom Fields】の「更新」でフィールドが無くなった、フィールドに入れていた情報が表示されないといったことが起きた場合、今現在できることは旧バージョンに戻すことです。バージョンの違いによって不具合が出ているといった状況のようです。

アップデートはどのバージョンでエラーが起きるのか

【Advanced Custom Fields】を使っている人のバージョンは、3、4、5あたりだと思います。
だいたいの方が4か5のバージョンかと思います。
自分の場合は、4.4.11を5.7.7にしたらフィールドが消え、ページからも入力したものが消えていました。
場合によっては、ページは表示されるけれど、フィールドが表示されないということもあるようです。
ページが表示されていれば、何か修正や新規で追加する用事が無ければ、意外とこの事態にしばらく気づかないなんてこともありえるかと思います。
調べてみるとだいたい
4→5
のアップデートで起きている場合が多いようです。

バックアップを取る

何か行動を起こす前に、バックアップを取っておきましょう。
万が一データベースから【Advanced Custom Fields】の情報が消えてしまう事態になっても、バックアップがあれば復活させることができますからね。
ただ下記ページでバックアップについて書いておりますが、おそらくこの方法ではバックアップが取れないと思います。

【Advanced Custom Fields】のカスタムフィールドの引っ越し、エクスポート、インポートする方法!
【Advanced Custom Fields】で作ったカスタムフィールドをエクスポートしてインポートすれば、他のWordPressに引っ越しさせることができます。 今回はその方法を書きたいと思います。 はじめに 念の...

取れるようならこちらを試してみてもらいたいとは思いますが、自分が検証した限りでは、フィールドが無い状態で、「エクスポート」を使っても他のテストサイトでは再現できませんでした。この場合は、MySQLなどを使い、データベースに直接アクセスして、【Advanced Custom Fields】の情報をバックアップしておく必要があります。
管理画面のプラグインを削除等、何かしなければ、フィールドが表示されない状態でも、データベースにはちゃんとデータが残っていますので、慌てずにデータベースから情報をバックアップしておきましょう。

MySQLでのバックアップについては、【Advanced Custom Fields】用ではありませんが、こちらが参考になるかと思います。

【WordPress】データベースのバックアップ、プラグインを使わずMySQLをphpMyAdminから保存する方法
WordPressでは自動でデータベースをバックアップするような機能はありませんので、プラグインを使わず手動でMySQLをphpMyAdminを使って保存する方法をロリポップ、エックスサーバー、Webアリーナに分けて解説します。

旧バージョンをダウンロードする

旧バージョンを手元に用意します。
バックアップがあればそれを使います。
もし無い場合は、下記よりダウンロードできます。

Advanced Custom Fields|downloads

自分が使っていたバージョンを覚えていないということもあると思います。その際は、いったん4.4.12をダウンロードして試してみてください。

ダウングレード方法

一番簡単な方法

旧バージョンの【Advanced Custom Fields】をFTPから上書きします。
管理画面のプラグインページから【Advanced Custom Fields】を停止したりなど一切せず、サーバーのフォルダを上書きします。
FFFTPなどのFTPソフトから、サーバーに接続し、

wp-content > plugins > advanced-custom-fields

と進んで、【Advanced Custom Fields】を上書きします。フォルダも消さずにそのまま上書きです。

ただ場合によってはWordPressへのログインはおろか、サイトが真っ白になるという事態もあったりします。
自分の場合はうまくいった場合とだめな場合がありました。
ダメな場合は、表示をさせようとしたら真っ白になりました。ページではなくサイトそのものが真っ白です。
この現象が起きた場合はかなり驚くと思いますが、その場合は、仕方ないですがアップロードした【Advanced Custom Fields】を削除します。
そしてもう一度アップロードしてみます。これで大丈夫であればOKです。
ただこの場合、パーミッションなどが一緒かどうか確認する必要がありますので、念のため削除する前にパーミッションをチェックしておき、アップロードしたフォルダがもしも違うパーミッションになっていた場合は、直します。

もし削除して再度フォルダをアップしても引き続き真っ白な場合は、また【Advanced Custom Fields】を削除します。
削除すればWordPressからログインできるはずです。慌てずにいきましょう。
※万が一全てのページが真っ白になった場合は、WordPressにログインしていたとしても、いきなり真っ白になり、ログイン画面すら消えていると思います。
この場合は、何もできません。慌てずに【Advanced Custom Fields】を削除しましょう。

ちなみにこの方法はよくないのでは?という風に思う方もいると思います。確かにサイトが真っ白になったらそっちの方が困るという場合も多いと思います。
しかしながらプラグインを停止すれば、フィールドに入力して表示されていた情報が今度は真っ白になり、ページの表示もなくなってしまいます。
もしくはエラー表示の英語がずらっと並ぶ場合もあると思います。

管理画面上のフィールド欄は無い状態だけれでも、今はページの情報は普通に表示されている、、という場合は、こちらを先に試すのもアリかと思います。
もちろん全ては自己責任でお願いいたします。

あとはアップロードはうまくいき、WordPressの管理画面も大丈夫だけれでも、プラグインのリストに【Advanced Custom Fields】が表示されていないという場合もあると思います。その場合も、【Advanced Custom Fields】のフォルダを削除して、下記の方法を試してみましょう。
この場合はおそらく上のほうにacf.phpがエラーになっています的な表示があったりすると思います。

管理画面からzipをアップする

WordPressの管理画面にある、プラグインページから【Advanced Custom Fields】を再度入れ直します。
【Advanced Custom Fields】をすでにFTPでサーバーから削除している場合は、プラグインページで「新規追加」を押します。

「プラグインのアップロード」を押します。

「ファイルを選択」でzipの【Advanced Custom Fields】をアップロードします。

もしプラグインページで【Advanced Custom Fields】があり、「有効」になっている状態の場合は、「停止」を押してからアップロードしたいところですが、HORAさんがご指摘されたように、「停止」からの上書きができない状態になります。

ただもしかしたら、バージョンによってはいけることもあるかもしれませんので、念のため一度だけは、「停止」してから試してみてください。

「停止」を押すと、今度は「有効化」と「削除」が出てくると思います。

停止の状態では、上書きできないので、削除することになりますが、削除を押した場合、データベースからフィールドの情報が消えてしまう可能性がないとは言い切れません。自分が検証した状況では削除でも復活できましたが、必ずしも同じように復活できるかは分かりませんので、FTPからではなくzipをアップロードして対応したい場合は、「削除」が必要になりますので、念のため【Advanced Custom Fields】のバックアップを必ず行ってください。バックアップさえあれば、万が一の時にも入力したデータは復活可能になりますので。

「削除」したら普通に「新規追加」からzipの【Advanced Custom Fields】をアップロードし直します。
ちなみにバックアップフォルダなので、zipじゃないんだけど・・・という場合は、フォルダをzipに圧縮してください。Windowsならフォルダの上で右クリックすれば「圧縮」が出て、zipを簡単に作れると思います。
【Advanced Custom Fields】をアップロードしたら「有効化」を押せば、フィールドが復活して表示ができると思います。

バージョン5で作ったフィールドが消えた場合

バージョン4でフィールドを作り、「更新」で5のバージョンにしてから、新しくフィールドを作った場合があると思います。
4のフィールドは消えているわけですが、複数の人が管理している場合、どのページにフィールドを使っているか把握しておらず、消えていることに気づかないこともあると思います。ページが表示されていなければすぐわかりますが、フィールドのみが消えていて、ページの情報は普通に表示されている場合もあるからです。
4に戻せば4の時に作ったフィールドが復活して、5にアップデートすると、5が復活して4の時のフィールドが消えるといったことになると思います。
なんともいえない状態ですが、この場合は、どっちかを諦めて、入力しなおすということが必要になります。
フィールドは見えていませんが、フィールド自体は、データベースに格納されているので、呼び出せます。
新規でフィールドを作れば、情報が入った状態のフィールドがページ内に復活します。
どっちかを取り、どっちかを入力し直してください。その場合、「フィールドラベル」や「フィールド名」など必ず全く同じにしてください。

ちなみに、4の時にエクスポートすれば?と思う人もいると思います。

もしくはフィールドをバックアップしていて持っているよという場合もあると思います。
エクスポートしておいて、5にバージョンを戻して、ファイルをインポートすればいいのでは?と。
ただこの方法を用いても、こちらで検証した際には4のフィールドは復活しませんでした。
やはり手動での入力が必要かなと思います。
できることなら5にして手動でフィールドを再入力し、バージョンは最新というのがよいかなとは思います。

おわりに

【Advanced Custom Fields】を利用している方はとても多いと思います。便利ですからね。
そして常に最新にしたいと思うのは当然だと思います。利用者が多ければ、悪意のある人に狙われやすいわけですから、心配ですし、プラグインを常に最新にしておくことは基本中の基本ですからね。
アップデートに不具合があるかどうかを調べてから「更新」するのが当然だといわれても、もうすでに「更新」しちゃった、調べてみたらバグがあったのか??というのを知る場合も多いと思います。してしまったことは仕方ないと思います。
この記事をみてうまく戻せたら幸いです。

コメントをどうぞ

  1. HORA より:

    すごく分かりやすく書いてあって助かりましたが、ACFを削除せずに(停止状態で)バージョン違いのACFをアップロードできるのでしょうか?
    zipで一応試みましたが、やはりダメでした。

    【Advanced Custom Fields】を「停止」させてから同じように「新規追加」からzipの【Advanced Custom Fields】をアップロードし直します。

  2. 知りたいねっと管理人 より:

    HORAさん、初めまして
    知りたいねっと管理人です。

    ご指摘ありがとうございます。
    「停止」してプラグインをzipからアップしようとしても、
    目的のフォルダはすでに存在しています。
    プラグインのインストールに失敗しました。
    と言う表示が出てしまいますね。
    FTPより削除した状態で無ければ停止しただけでは無理のようですね。
    ちなみに、「停止」と「削除」の項目から、「削除」を押して、プラグインをzipよりアップロードした場合、フィールドは復活します。
    「削除」は万が一もありますから、おススメできませんが、WordPress 4.7.4でACF4.4.12→ACF5.8.5→ACF4.4.12をした結果は復活できました。
    FTPからACFを削除できない状況でしたら、ACFのバックアップを取った上で、停止ではなく削除してからzipでアップしてみるのもありかと思います。
    これらのことを記事に追記して修正しておきます。ご指摘ありがとうございます。
    どうぞよろしくお願いいたします。