ホームページ  >  に質問  >  本文

class-wp-roles.php のエラー - 「array_keys() は引数 1 が配列であることを期待しています」

<p>数日前、WordPress の管理ダッシュボードにアクセスできなくなっていることに気づきました。通常の管理者ユーザー名/パスワードを使用してログインしますが、WordPress ダッシュボードではなく Web サイトのホームページにリダイレクトされます。また、ページ上部の管理バーには、ダッシュボードに移動したりページを編集したりするための通常のオプションが表示されません。その後、wp-admin にアクセスしようとすると、「申し訳ありませんが、このページへのアクセスは許可されていません。」というエラー メッセージが表示されます。</p> <p>wp_debug を有効にすると、次のエラー メッセージが表示され始めます: </p> <ブロック引用> <p>警告: array_keys() は、引数 1 が配列、つまり /var/www/wp-includes/class-wp-roles.php の 291 行目で指定された文字列であることを想定しています</p> <p>警告: /var/www/wp-includes/class-wp-roles.php の 291 行目で foreach() に指定された引数が無効です</p> <p>警告: array_keys() は、引数 1 が配列、つまり /var/www/wp-includes/class-wp-roles.php の 291 行目で指定された文字列であることを想定しています</p> <p>警告: /var/www/wp-includes/class-wp-roles.php の 291 行目で foreach() に指定された引数が無効です</p> </blockquote> <p>このエラーは、すべてのプラグインを無効にしても表示され、現在どのテーマがアクティブであるかに関係なく表示されます。検索してもこのエラーに関する情報はあまり見つかりませんでした。class-wp-roles に関するいくつかのスレッドは、私が使用していない特定のプラグインに固有のものでした。 </p> <p>すべてのプラグインをオフにする、wp-config.php を確認する、ファイル権限を確認する、phpmyadmin でアカウントの役割と権限を確認するなどの通常の最初の確認を行い、さらに phpmyadmin を使用して新しい管理者ユーザーを作成しました。また、サイトをセーフ モードでロードしました。これにより、すべてのプラグインが無効になり、WordPress のデフォルトの Twenty Twenty テーマが使用されます。まだWordPressダッシュボードにアクセスできません。 wp-admin.php。 </p> <p>追加情報として、私の Web サイトでは Storefront テーマと WooCommerce を使用していますが、両方のテーマがアクティブ化されていない場合でもこのエラーが表示されるため、問題はありません。私のウェブサイトは GoDaddy でホストされており、最初にこのエラーが発生したとき、ウェブサイトは WordPress 6.0.3 を使用していましたが、昨日自動的に 6.1.1 にアップグレードされましたが、依然として同じ問題が発生しています。 (アップグレードによってこの問題が解決されることを心から願っています。) サイトに関するその他の点はすべて正常に動作しているようです。管理ダッシュボードにアクセスできません。これに関してご協力をいただければ幸いです。 </p>
P粉253518620P粉253518620438日前476

全員に返信(1)返信します

  • P粉818317410

    P粉8183174102023-08-31 00:28:33

    わあ、すごく早いですね。今日、この質問を投稿するためだけに Stack Overflow アカウントを作成しました。これを理解するために机に頭をぶつけて数日過ごした後、数時間以内に解決策を見つけました。

    同様の問題が発生している場合は、まず定期的にチェックして問題のトラブルシューティングを行ってから、サイトの phpmyadmin、次に wp_options > テーブルに移動してください。 wp_user_roles エントリを見つけます。次のような内容になっていることを確認してください:

    私の wp_user_roles は実際には次の値に設定するだけです:

    これは間違った値であることが判明しました。どうしてこうなったのか分かりません。この質問をするまで、私は phpmyadmin をまったくいじったことがありませんでした。それはプラグインか何かであるはずです。その AOK を役割と機能の正しいリストに置き換えると、すぐに WordPress 管理ダッシュボードに再びアクセスできるようになりました。

    WooCommerce を使用している場合は、追加の手順が必要です。WooCommerce プラグインを非アクティブにしてから再度アクティブにする必要があります。これは、上記のロールのリストには、WooCommerce の製品、注文、分析、クーポンなどのページへのアクセスを許可する「ストア マネージャー」と呼ばれる WooCommerce 固有のロールが欠落しているためです。

    ###それでおしまい!これを手伝ってくれた @VijayHardaha に感謝します!この投稿がいつか他の人の役に立つことを願っています。

    返事
    0
  • キャンセル返事