class-wp-roles.php의 오류 - "array_keys()에서는 인수 1이 배열일 것으로 예상합니다."
P粉253518620
2023-08-30 13:11:16
<p>며칠 전 WordPress의 관리 대시보드에 더 이상 액세스할 수 없다는 사실을 발견했습니다. 일반 관리자 사용자 이름/비밀번호를 사용하여 로그인하지만 WordPress 대시보드 대신 웹사이트 홈페이지로 리디렉션됩니다. 그리고 페이지 상단의 관리 표시줄에는 대시보드로 이동하거나 페이지를 편집하는 등의 일반적인 옵션이 표시되지 않습니다. 그런 다음 wp-admin으로 이동하려고 하면 "죄송합니다. 이 페이지에 액세스할 수 없습니다."라는 오류 메시지가 나타납니다.</p>
<p>wp_debug를 활성화하면 다음 오류 메시지가 표시되기 시작합니다. </p>
<인용문>
<p>경고: array_keys()는 인수 1이 /var/www/wp-includes/class-wp-roles.php 라인 291</p>에 제공된 문자열인 배열일 것으로 예상합니다.
<p>경고: 291행의 /var/www/wp-includes/class-wp-roles.php에 있는 foreach()에 잘못된 인수가 제공되었습니다</p>
<p>경고: array_keys()는 인수 1이 /var/www/wp-includes/class-wp-roles.php 라인 291</p>에 제공된 문자열인 배열일 것으로 예상합니다.
<p>경고: 291행의 /var/www/wp-includes/class-wp-roles.php에 있는 foreach()에 잘못된 인수가 제공되었습니다</p>
</인용문>
<p>이 오류는 모든 플러그인을 비활성화한 경우에도 나타나며 현재 활성화된 테마에 관계없이 나타납니다. 내 검색에서 이 오류에 대한 많은 정보를 찾을 수 없었으며 class-wp-roles에 대한 여러 스레드는 내가 사용하지 않는 특정 플러그인에만 해당됩니다. </p>
<p>모든 플러그인 끄기, wp-config.php 확인, 파일 권한 확인, phpmyadmin에서 계정 역할/권한 확인과 같은 일반적인 첫 번째 확인을 수행했으며 심지어 phpmyadmin을 사용하여 새 관리자를 생성했습니다. 또한 모든 플러그인을 비활성화하고 WordPress의 Twenty Twenty 테마를 기본값으로 설정하는 안전 모드로 사이트를 로드했습니다. 여전히 WordPress 대시보드에 액세스할 수 없습니다. wp-admin.php. </p>
<p>몇 가지 추가 정보에 따르면 내 웹사이트에서는 Storefront 테마와 WooCommerce를 사용하고 있지만 두 테마가 모두 활성화되지 않은 경우에도 이 오류가 표시되므로 문제가 되지 않습니다. 그렇죠? 내 사이트는 GoDaddy에서 호스팅되며 처음 이 오류가 발생했을 때 사이트는 WordPress 6.0.3을 사용하고 있었지만 어제 자동으로 6.1.1로 업그레이드되었으며 여전히 동일한 문제가 발생합니다. (업그레이드를 통해 이 문제가 해결되기를 진심으로 바랍니다.) 사이트의 다른 모든 부분은 제대로 작동하는 것 같습니다. 관리자 대시보드에 액세스할 수 없습니다! 이에 대한 도움을 주시면 대단히 감사하겠습니다. </p>
와, 정말 빠르네요. 저는 이 질문을 게시하기 위해 오늘 Stack Overflow 계정을 만들었고, 이 문제를 알아내려고 며칠 동안 책상에 머리를 부딪힌 후 몇 시간 내에 해결책을 찾았습니다.
비슷한 문제가 발생하는 경우 먼저 정기적으로 확인하여 문제를 해결한 다음 사이트의 phpmyadmin으로 이동한 다음 wp_options > 표로 이동하세요. wp_user_roles 항목을 찾으세요. 다음과 같은 내용이 있는지 확인하세요:
내 wp_user_roles는 실제로 이것을 다음 값으로 설정합니다.
이 값이 잘못된 것으로 밝혀졌습니다! 어떻게 이런 일이 일어났는지 모르겠습니다. 이 질문 이전에는 phpmyadmin을 전혀 다루지 않았습니다. 플러그인이나 뭐 그런 것이어야 합니다. 해당 AOK를 올바른 역할 및 기능 목록으로 교체하자 즉시 WordPress 관리 대시보드에 다시 액세스할 수 있었습니다.
WooCommerce를 사용하는 경우 추가 단계가 있습니다. WooCommerce 플러그인을 비활성화했다가 다시 활성화해야 합니다. 이는 위의 역할 목록에 WooCommerce의 제품, 주문, 분석, 쿠폰 및 기타 페이지에 대한 액세스를 제공하는 "스토어 관리자"라는 WooCommerce 관련 역할이 없기 때문입니다.
바로 그거야! 도움을 주신 @VijayHardaha에게 큰 감사를 드립니다! 언젠가 이 게시물이 다른 누군가에게 도움이 되기를 바랍니다.