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

جميع المشاكل المعروفة →