web-dev-qa-db-ja.com

ダッシュボードのすべてのページを見ることができない(3しないことができない)/wp-admin/edit.php> 500エラー

クライアントのWebサイトには12ページありますが、管理者アカウントを持っていてもどちらも3ページしか表示されず、新しい管理者アカウントを作成しても問題は解決しません。

画面オプションが表示されず、Chromeコンソールを確認すると、次のように表示されます。

リソースのロードに失敗しました:サーバーは500()のステータスで応答しました:/wp-admin/edit.php

/wp-admin/edit.phpが存在することがわかります。

/wp-admin/wp-includesを削除し、それらの新しいコピーをアップロードしました。

親テーマの新しいコピーをアップロードしましたが、子テーマはそのままです。

pluginsplugins.tempに名前を変更しても問題は残ります。

感謝して助けてください。

EDIT1

デバッグをオンにして/wp-admin/edit.php?post_type=pageをリ​​ロードすると、次のようなエラーメッセージが表示されます。

警告:48行目の/home/user/public_html/wp-content/themes/abundance/includes/admin/compat.phpの文字列オフセット 'slideshow'が正しくありません

致命的なエラー:捕捉されないエラー:/home/user/public_html/wp-content/themes/abundance/includes/admin/compat.php:48で、文字列オフセットを配列として使用することはできません。スタックトレース:#0/home/user/public_html/wp-includes/class-wp-hook.php(298):avia_backend_compatibility_custom_field_filter( ''、127)#1 /home/user/public_html/wp-includes/plugin.php(203):WP_Hook-> apply_filters( ''、 #2 /home/user/public_html/wp-content/themes/abundance/framework/php/function-set-avia-frontend.php(262):apply_filters( 'avia_post_meta _...'、 '、127) #3 /home/user/public_html/wp-includes/class-wp-hook.php(300):avia_post_meta(Object(WP_Post))#4/home/user/public_html/wp-includes/class-wp-hook。 php(323):WP_Hook-> apply_filters( ''、配列)#5 /home/user/public_html/wp-includes/plugin.php(515):WP_Hook-> do_action(配列)#6/home/user/public_html /wp-includes/class-wp-query.php(4070):do_action_ref_array( 'the_post'、Array)#7 /home/user/public_html/wp-includes/query.php(938):WP_Query-> setup_postdata(Object) (WP_Post))#8/home/ma /home/user/public_html/wp-content/themes/abundance/includes/admin/compat.phpの48行目

EDIT2

これは/abundance/includes/admin/compat.phpの44行目から61行目です。

function avia_backend_compatibility_custom_field_filter($custom_fields, $post_id)
{
    if(empty($custom_fields))
    {
        $custom_fields['slideshow'][0]['slideshow_image'] = "";
    }

    if(isset($custom_fields['slideshow']) && is_array($custom_fields['slideshow']) && isset($custom_fields['slideshow'][0]['slideshow_image']))
    {
        $post_thumbnail_id = get_post_meta( $post_id, '_thumbnail_id', true );

        if($custom_fields['slideshow'][0]['slideshow_image'] == "" && $post_thumbnail_id)
        {
            $custom_fields['slideshow'][0]['slideshow_image'] = $post_thumbnail_id;
        }
    }
    return $custom_fields;
}
2
Steve
  1. Wp-config.phpファイルを開き、パラメータを次のように変更してください。

    define('WP_DEBUG', true);
    

このパラメータを有効にすると、エラーの詳細を確認できます。

  1. TwentySeventeenなどのデフォルトのWordPressテーマをアクティブにして、エラーがまだ発生するかどうかを確認してください。

更新:

function avia_backend_compatibility_custom_field_filter($custom_fields, $post_id)
{
    if(empty($custom_fields))
    {
        $custom_fields = array(
             'slideshow' => array(
                 array( 'slideshow_image' => '' )
             )
        );
    }

    if(isset($custom_fields['slideshow']) && is_array($custom_fields['slideshow']) && isset($custom_fields['slideshow'][0]['slideshow_image']))
    {
        $post_thumbnail_id = get_post_meta( $post_id, '_thumbnail_id', true );

        if($custom_fields['slideshow'][0]['slideshow_image'] == "" && $post_thumbnail_id)
        {
            $custom_fields['slideshow'][0]['slideshow_image'] = $post_thumbnail_id;
        }
    }
    return $custom_fields;
}
1
Misha Rudrastyh