- Trạng thái
- Đã giải quyết
- Được báo cáo cho
- Advanced Custom Fields Multilingual 2.1.2
- Đã giải quyết trong
- Advanced Custom Fields Multilingual 2.1.3
- Plugin/giao diện liên quan
- Advanced Custom Fields (ACF)
- Thẻ chủ đề
- ATE, Bug, Compatibility
Tổng quan về lỗi
Nếu bạn đang sử dụng plugin Advanced Custom Fields để đăng ký các loại nội dung tùy chỉnh hoặc phân loại tùy chỉnh, bạn có thể gặp phải lỗi nghiêm trọng trong môi trường sử dụng PHP 8 hoặc các cảnh báo trong PHP 7, khi có dữ liệu bị hỏng được lưu trữ cho bất kỳ đối tượng nào trong số đó:
PHP Fatal error: Uncaught TypeError: array_walk(): Argument #1 ($array) must be of type array, null given in .../wp-content/plugins/acfml/classes/Strings/Helper/ContentTypeLabels.php:55
Giải pháp tạm thời
Vui lòng đảm bảo bạn có bản sao lưu toàn bộ trang web trước khi tiếp tục.
Tùy chọn 1
Khi Advanced Custom Fields Multilingual đã tắt, hãy chỉnh sửa loại bài viết hoặc phân loại ACF đang gặp sự cố và thiết lập các giá trị còn thiếu cho các nhãn hoặc slug đối tượng, sau đó lưu lại. Tiếp theo, kích hoạt Advanced Custom Fields Multilingual và mọi thứ sẽ hoạt động bình thường.
Tùy chọn 2
- Mở tệp …/wp-content/plugins/acfml/classes/Strings/Helper/ContentTypeLabels.php.
- Tìm dòng 53.
- Thay thế:
array_walk( $objectArgs['labels'], function( &$value, $key ) use ( $translatedLabels ) { $value = Obj::propOr( $value, $key, $translatedLabels ); } ); - Bằng:
$labels = Obj::propOr( [], 'labels', $objectArgs ); array_walk( $labels, function( $value, $key ) use ( &$objectArgs, $translatedLabels ) { $objectArgs['labels'][ $key ] = Obj::propOr( $value, $key, $translatedLabels ); } );