WPML
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 );
    } );

Tất cả các lỗi đã ghi nhận →