サポート » プラグイン » プラグイン無効化によるHTTP ERROR 500表示

  • プラグインに関しての質問です。
    管理画面でプラグイン「advanced-custom-fields」の無効化を選択したところ、HTTP ERROR 500表示となり管理画面に入れなくなってしまいました。

    以前、PHPのバージョンが古いためプラグイン更新時にも同じ現象になりバージョンの古いものをFTPを通してアップロードし改善できました。

    今回は、そのバックアップをアップロードしてもエラーが改善されず、またディレクトリの名称を変更しても管理画面にはアクセスできません。

    考えられる原因として、
    1.サーバー移行作業中にプラグインによるパーミット関連のエラーが発生。そのため、一度その作業を中断し管理画面にて操作したため、サーバー移行作業に何らかの原因がある。
    2. 自作テーマ(他社作成)のためプラグインの無効化によりコードが書き換わり、バックアップを上書きしても該当箇所に当てはまっていない

    以上の点かと考えています。

    何か解決策があれば、ご教示いただけませんでしょうか。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • こんにちは

    WordPress のデバッグモードを有効にするか、サーバー上のエラーログで、エラーの原因を確認してみてください。

    スレッド開始 mingo313

    (@mingo313)

    munyaguさん、ご回答をありがとうございます。

    一度、デバックモードで確認してみます。

    @mingo313 さん

    こんにちは。

    管理画面でプラグイン「advanced-custom-fields」の無効化を選択したところ、HTTP ERROR 500表示となり管理画面に入れなくなってしまいました。

    →経験上、get_field()the_field() などのACF独自の関数が、存在チェック無しでテーマファイルに直書きされている事が原因になっていることが多いです。

    ACFプラグインを無効にすると、それらの関数は存在しない事になりますので、その瞬間に500エラー=ページが真っ白となります。

    エラーログにも、おそらく「XXXという関数は存在しない」といった旨の表示がされているのではないかと思います。

    正しくは、以下のようにかかれるべきです。

    if ( function_exisits('the_field')) {
      the_field('XXX');
    }

    まずはテーマが原因となっているか切り分けるため、FTP等で wp-content 配下のテーマフォルダをリネーム(my-theme_my-theme 等)して、症状が改善されるか確認する事をおすすめします。

    スレッド開始 mingo313

    (@mingo313)

    @wildworks さん

    ご回答ありがとうございます。

    確かにテーマには存在チェック無しにthe_field()が記載されていました。

    また、

    まずはテーマが原因となっているか切り分けるため、FTP等で wp-content 配下のテーマフォルダをリネーム(my-theme → _my-theme 等)して、症状が改善されるか確認する事をおすすめします。

    こちらの方法で、管理画面にアクセスすることができたので、現時点ではプラグインを有効にして修復することができました。

    プラグインを無効化した際にも、管理画面にはアクセスできるようにしたいので存在チェックを書き足したいのですが、なにか良い記述方法があればご教示いただきたいです。

    よろしくお願いいたします。

    @mingo313 さん

    こんにちは。

    プラグインを無効化した時に管理画面にアクセス出来ない(=真っ白になる)という事は、テーマの functions.php などで、管理画面で読み込まれる処理の部分にもACFの関数が書かれているのではないかと思います。
    対処方法として2つあります。

    関数の存在チェックを入れる

    例:

    if ( function_exists( 'the_field' ) ) {
    	the_field( 'XXXX' );	
    } 

    WordPressコアの関数を使う

    ACFの関数では無く、WordPress側のメタ情報を取得する関数を使う方法です。
    post_custom」「get_post_custom」「get_post_meta」などのキーワードで調べてみて下さい。
    ただしこれらの関数では、ACFの the_fieldget_field と値の取得・表示のされかたが違うと思うので、適宜整形が必要です。

    また管理画面に限らず、「プラグインを全て停止しても最低限動作するテーマの作りにする」というのが理想です。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • このトピックに返信するにはログインが必要です。