WPML
สถานะ
แก้ไขแล้ว
รายงานสำหรับ
WPML Multilingual CMS 4.4.6
แก้ไขใน
WPML 4.4.8

ภาพรวมของปัญหา

หากคุณไปที่หน้า ปรับแต่ง หรือ วิดเจ็ต ในหน้าจัดการเว็บไซต์บนไซต์ของคุณ จะแสดงหน้าว่างเปล่าหรือข้อผิดพลาดร้ายแรง:

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

วิธีแก้ปัญหาชั่วคราว


  • สำรองข้อมูลไซต์ของคุณแบบเต็มก่อนดำเนินการต่อ

  • เปิดไฟล์ /wp-content/plugins/sitepress-multilingual-cms/classes/widgets/class-wpml-widgets-support-backend.php

  • เปลี่ยน:
    			'selected_language' => Obj::propOr( 'all', 'wpml_language', $instance ),


  • เป็น:
    			'selected_language' => Obj::propOr( 'all', 'wpml_language', is_array( $instance ) ? $instance : [] ),


  • แก้ไขตัวเลือกการปรับแต่งและ/หรือวิดเจ็ตของคุณ

  • เมื่อแก้ไขเสร็จแล้ว ให้ลบโค้ดที่เพิ่มในขั้นตอนที่ 2
  • เปิดไฟล์: wp-content/plugins/sitepress-multilingual-cms/sitepress.class.php
  • เปลี่ยน:
    		$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;
    			}
    		}
  • เป็น:
    		$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;
    			}
    		}

ปัญหาที่ทราบแล้วทั้งหมด →