Uncatched ArgumentCountError: array_merge()가 알 수 없는 명명된 매개 변수를 허용하지 않습니다.
워드프레스를 위해 테마를 설치하려고 하면 이 오류가 나타납니다.
Fatal error: Uncaught ArgumentCountError: array_merge() does not
accept unknown named parameters in
D:\xampp\htdocs\wordpress\wp-includes\widgets.php:1261
Stack trace:
#0
D:\xampp\htdocs\wordpress\wp-includes\widgets.php(1261):
array_merge(wp_inactive_widgets: Array, sidebar-1: Array, sidebar-2:
Array, sidebar-3: Array)
#1
D:\xampp\htdocs\wordpress\wp-includes\widgets.php(1216):
retrieve_widgets(true)
#2
D:\xampp\htdocs\wordpress\wp-includes\class-wp-hook.php(289):
_wp_sidebars_changed('Twenty Twenty')
#3 D:\xampp\htdocs\wordpress\wp-includes\class-wp-hook.php(311):
WP_Hook->apply_filters(NULL, Array)
#4
D:\xampp\htdocs\wordpress\wp-includes\plugin.php(478):
WP_Hook->do_action(Array)
#5
D:\xampp\htdocs\wordpress\wp-includes\theme.php(2974):
do_action('after_switch_th...', 'Twenty Twenty', Object(WP_Theme))
#6
D:\xampp\htdocs\wordpress\wp-includes\class-wp-hook.php(287):
check_theme_switched('')
#7
D:\xampp\htdocs\wordpress\wp-includes\class-wp-hook.php(311):
WP_Hook->apply_filters(NULL, Array)
#8
D:\xampp\htdocs\wordpress\wp-includes\plugin.php(478):
WP_Hook->do_action(Array)
#9
D:\xampp\htdocs\wordpress\wp-settings.php(540): do_action('init')
#10
D:\xampp\htdocs\wordpress\wp-config.php(90):
require_once('D:\\xampp\\htdocs...')
#11
D:\xampp\htdocs\wordpress\wp-load.php(37):
require_once('D:\\xampp\\htdocs...')
#12
D:\xampp\htdocs\wordpress\wp-blog-header.php(13):
require_once('D:\\xampp\\htdocs...')
#13
D:\xampp\htdocs\wordpress\index.php(17):
require('D:\\xampp\\htdocs...')
#14 {main} thrown in
D:\xampp\htdocs\wordpress\wp-includes\widgets.php on line 1261
제시된 오류 메시지에 대한 컨텍스트를 제공하지 않았기 때문에 이 질문은 잘 알려지지 않았습니다.WordPress 코드 내에서 오류가 발생한 것으로 보아 이 오류를 유발하는 기본 함수 호출을 직접 제어할 수 없습니다.PHP 8.0+가 배포된 시스템에서 이전 버전의 WordPress를 실행하고 있는 것으로 추측됩니다(아래 설명 참조).WordPress를 업그레이드하거나 PHP 7.4로 다운그레이드합니다.
이 오류가 코드에 저장된 이유에 대한 답을 찾기 위해 이런 방식으로 오는 다른 사람들에게 이 오류는 PHP 8.0의 새로운 기능인 'Named Parameters'와 관련이 있습니다.의 경우array_merge
, 문자열 키 배열을 사용하여 다음과 같은 방식으로 오류를 호출할 경우 오류가 발생할 수 있습니다.
call_user_func_array('array_merge', [
'key1'=>['abc', 'def'],
'key2'=>['ghi', 'jkl']
]);
-> Error
왜냐하면call_user_func_array
최상위 배열 키를 매개 변수 이름으로 해석합니다.array_merge
, 그리고 이 키들은 함수 인수와 일치하지 않습니다.
여기서 해결책은 사용하는 것입니다.array_values
먼저 열쇠를 벗기는 방법:
call_user_func_array('array_merge', array_values([
'key1'=>['abc', 'def'],
'key2'=>['ghi', 'jkl']
]));
-> ['abc','def','ghi','jkl']
나는 노력했다.composer update
,composer self-update
마지막으로 이 문제만 빼고 다 해결했습니다.
변경 사항:
$choices = call_user_func_array( 'array_merge', $choices );
대상:
$choices = call_user_func_array( 'array_merge', array_values($choices) );
이것이 나를 위해 고쳤습니다.
Bluehost WordPress 사이트에서 이러한 문제를 발견했을 때 다음이 효과적이었습니다.
- PHP 다운그레이드
8.0
로.7.4
사용중MultiPHP Manager
- 워드프레스 업그레이드 위치
5.3
로.5.9
경유로wp-admin
- PHP 업그레이드 위치
7.4
로.8.1
사용중MultiPHP Manager
php 8.x로 업그레이드한 후에도 같은 문제가 있었습니다.
고정 대상:
sudo composer self-update
권장사항: Linux에 최신 버전의 Composer를 설치하고 이를 글로벌하게 정의하여 프로젝트 디렉토리에서 실행하면 문제가 해결됩니다.
작곡가 1.10.1 ----> to ------> 작곡가 버전 2.3.4
힌트: 같은 경우 composer.lock과 vendor 폴더를 취소하고 다시 실행합니다.
언급URL : https://stackoverflow.com/questions/69424097/uncaught-argumentcounterror-array-merge-does-not-accept-unknown-named-paramet
'prosource' 카테고리의 다른 글
프로그래밍 방식으로 OS X 명령줄 앱의 절대 경로 검색 (0) | 2023.09.20 |
---|---|
파일 체크아웃 없이 Git 분기 전환 (0) | 2023.09.20 |
SELECT를 위한 Mariaadb 반환 JSON (0) | 2023.09.20 |
프레임 src가 로드되지 않으면 오류가 발생합니다. 오류: "'http://www.google.co.in/' '을 프레임에 표시하는 것을 거부했습니다." (0) | 2023.09.20 |
파일 경로 가져오기(폴더로 종료) (0) | 2023.09.20 |