WPML
Trạng thái
Đã giải quyết
Được báo cáo cho
WPML Multilingual CMS 4.4.6
Đã giải quyết trong
WPML 4.4.8

Tổng quan về lỗi

Nếu bạn truy cập trang Tùy chỉnh hoặc Widget trong trang quản trị của trang web, một trang trắng hoặc lỗi nghiêm trọng sẽ hiển thị:

PHP Fatal error: Uncaught InvalidArgumentException: item should be a Collection or an array or an object in .../wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/fp/core/Obj.php:97

Giải pháp tạm thời


  • Tạo một bản sao lưu đầy đủ cho trang web của bạn trước khi tiếp tục.

  • Mở tệp /wp-content/plugins/sitepress-multilingual-cms/classes/widgets/class-wpml-widgets-support-backend.php.

  • Thay đổi:
    			'selected_language' => Obj::propOr( 'all', 'wpml_language', $instance ),


  • Thành:
    			'selected_language' => Obj::propOr( 'all', 'wpml_language', is_array( $instance ) ? $instance : [] ),


  • Chỉnh sửa các tùy chọn Tùy chỉnh và/hoặc widget của bạn.

  • Khi chỉnh sửa xong, xóa mã đã thêm ở bước 2.
  • Mở tệp: wp-content/plugins/sitepress-multilingual-cms/sitepress.class.php
  • Thay đổi:
    		$post_types = get_post_types( $args, 'objects' );
    
    		foreach ( $post_types as $name => $attrs ) {
    			$slug = trim( Obj::pathOr( '', [ 'rewrite', 'slug' ], $attrs ), '/' );
    			if ( $slug && isset( $vars[ $slug ] ) ) {
    				$post_type = $name;
    				$post_slug = $vars[ $slug ];
    				break;
    			}
    		}
  • Thành:
    		$post_types = get_post_types( $args, 'objects' );
    
    		foreach ( $post_types as $name => $attrs ) {
    		    if ( $attrs->rewrite == false ) {
    		        break;
    		    }
    			$slug = trim( Obj::pathOr( '', [ 'rewrite', 'slug' ], $attrs ), '/' );
    			if ( $slug && isset( $vars[ $slug ] ) ) {
    				$post_type = $name;
    				$post_slug = $vars[ $slug ];
    				break;
    			}
    		}

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