Erreur dans class-wp-roles.php - "array_keys() s'attend à ce que l'argument 1 soit un tableau"
P粉253518620
P粉253518620 2023-08-30 13:11:16
0
1
422

Il y a quelques jours, j'ai remarqué que je ne pouvais plus accéder au tableau de bord d'administration de WordPress. Je me connecterais en utilisant mon nom d’utilisateur/mot de passe d’administrateur habituel, mais je serais ensuite redirigé vers la page d’accueil du site Web au lieu du tableau de bord WordPress. Et la barre d'administration en haut de la page n'affiche pas les options habituelles pour accéder au tableau de bord ou modifier les pages, etc. Lorsque j'essaie ensuite d'accéder à wp-admin, je reçois un message d'erreur "Désolé, vous n'êtes pas autorisé à accéder à cette page."

Lorsque j'active wp_debug, le message d'erreur suivant s'affiche :

Attention : array_keys() s'attend à ce que l'argument 1 soit un tableau, la chaîne donnée dans /var/www/wp-includes/class-wp-roles.php ligne 291

Attention : argument non valide fourni à foreach() dans /var/www/wp-includes/class-wp-roles.php à la ligne 291

Attention : array_keys() s'attend à ce que l'argument 1 soit un tableau, la chaîne donnée dans /var/www/wp-includes/class-wp-roles.php ligne 291

Attention : argument non valide fourni à foreach() dans /var/www/wp-includes/class-wp-roles.php à la ligne 291

Cette erreur apparaît même si je désactive tous les plugins, et elle apparaît quel que soit le thème actuellement actif. Je n'ai pas trouvé beaucoup d'informations sur cette erreur dans mes recherches, et plusieurs discussions sur les rôles de classe wp sont spécifiques à certains plugins que je n'utilise pas.

J'ai effectué les premières vérifications normales, comme désactiver tous les plugins, vérifier wp-config.php, vérifier les autorisations de fichiers, vérifier les rôles/autorisations du compte dans phpmyadmin, et j'ai même créé un nouvel utilisateur administrateur à l'aide de phpmyadmin. J'ai également chargé le site en mode sans échec, ce qui désactive tous les plugins et utilise par défaut le thème Twenty Twenty dans WordPress. Je ne peux toujours pas accéder au tableau de bord WordPress. wp-admin.php.

Quelques informations supplémentaires, mon site Web utilise le thème Storefront et WooCommerce, mais comme cette erreur apparaît même lorsque les deux thèmes ne sont pas activés, cela ne devrait pas avoir d'importance, n'est-ce pas ? Mon site Web est hébergé sur GoDaddy et lorsque j'ai rencontré cette erreur pour la première fois, le site Web utilisait WordPress 6.0.3, mais hier, il a été automatiquement mis à niveau vers 6.1.1 et j'ai toujours le même problème. (J'espère vraiment que la mise à niveau résoudra ce problème.) Tout le reste sur le site semble fonctionner correctement. Je ne peux tout simplement pas accéder au tableau de bord d'administration ! Toute aide à ce sujet serait grandement appréciée.

P粉253518620
P粉253518620

répondre à tous (1)
P粉818317410

Wow, c'est tellement rapide. J'ai créé un compte Stack Overflow aujourd'hui juste pour poster cette question, et après des jours passés à me cogner la tête sur mon bureau pour essayer de comprendre cela, j'ai eu la solution en quelques heures.

Pour toute personne rencontrant des problèmes similaires, assurez-vous d'abord d'effectuer une vérification régulière pour résoudre ces problèmes, puis accédez auphpmyadminde votre site, puis au tableauwp_options>. Recherchez l'entréewp_user_roles. Assurez-vous qu'il contient quelque chose comme ceci :

Mon wp_user_roles définit simplement ceci sur la valeur :

Il s'avère que ce n'était pas la bonne valeur ! Je ne sais pas comment c'est arrivé. Avant cette question, je n'avais pas du tout joué avec phpmyadmin. Ce devrait être un plug-in ou quelque chose du genre. Lorsque j'ai remplacé cet AOK par la liste correcte de rôles et de fonctionnalités, j'ai immédiatement pu accéder à nouveau au tableau de bord d'administration WordPress.

Si vous utilisez WooCommerce, il y a une étape supplémentaire : vous devez désactiver et réactiver le plugin WooCommerce. En effet, il manque dans la liste des rôles ci-dessus un rôle spécifique à WooCommerce appelé « Store Manager », qui vous donne accès aux produits, aux commandes, aux analyses, aux coupons et à d'autres pages de WooCommerce.

C'est tout ! Un grand merci à @VijayHardaha pour son aide ! J'espère que ce post aidera quelqu'un d'autre un jour.

    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!