WPML
الحالة
محلولة بواسطة المطور
الإضافة/القالب ذو الصلة
WP Event Manager
وسوم الموضوع
Compatibility

نظرة عامة على المشكلة

عند ترجمة الأحداث التي تم إنشاؤها باستخدام WP Event Manager وWPML، لا تُعرض حقول المنظّم والمكان دائماً باللغة الافتراضية في الواجهة الأمامية.

حل بديل مؤقت

يُرجى التأكد من أخذ نسخة احتياطية كاملة لموقعك قبل المتابعة.

ستحتاج إلى إجراء التغييرات التالية.


  1. اذهب إلى WPMLإعداداتترجمة الحقول المخصصة

  2. عيّن الحقلين المخصصين _event_organizer_ids و _event_venue_ids إلى نسخ.

  3. ثم، افتح الملف /wp-content/plugins/wp-event-manager/wp-event-manager-template.php.

  4. ابحث عن السطر 1229.

  5. غيّر:
    foreach ($post->_event_organizer_ids as $key => $organizer_id) {

    إلى:

    foreach ($post->_event_organizer_ids as $key => $organizer_id) {
    
    	// WPML Workaround for compsupp-6662
    	if (class_exists('SitePress')) {
    		$organizer_id = apply_filters( 'wpml_object_id', $organizer_id, 'event_organizer', TRUE  );
    	}


  6. بعد ذلك، افتح الملف /wp-content/plugins/wp-event-manager/wp-event-manager-functions.php.

  7. ابحث عن السطر 1903.

  8. غيّر:
    function get_event_organizer_ids( $post = null ) {
    	$post = get_post( $post );
    
    	if ( $post->post_type !== 'event_listing' )
    		return;
    
    	return !empty($post->_event_organizer_ids) ? $post->_event_organizer_ids : '';
    }

    إلى:

    function get_event_organizer_ids( $post = null ) {
    	$post = get_post( $post );
    
    	if ( $post->post_type !== 'event_listing' ) {
    		return;
    	}
    
    	// WPML Workaround for compsupp-6662
    	if ( class_exists('SitePress') && !empty($post->_event_organizer_ids) ) {
    		foreach ($post->_event_organizer_ids as $key => $organizer_id ) {
    			$result = $post->_event_organizer_ids;
    			$result[$key] = apply_filters( 'wpml_object_id', $organizer_id, 'event_organizer', TRUE  );
    		}
    
    		return $result;
    	}	
    
    	return !empty($post->_event_organizer_ids) ? $post->_event_organizer_ids : '';
    }

  9. أخيراً، في نفس الملف، ابحث عن السطر 1985.

  10. غيّر:
    function get_event_venue_ids( $post = null ) {
    	$post = get_post( $post );
    
    	if ( $post->post_type !== 'event_listing' )
    		return;
    
    	return !empty($post->_event_venue_ids) ? $post->_event_venue_ids : '';
    }

    إلى:

    function get_event_venue_ids( $post = null ) {
    	$post = get_post( $post );
    
    	if ( $post->post_type !== 'event_listing' )
    		return;
    
    	// WPML Workaround for compsupp-6662
    	if ( class_exists('SitePress') && !empty($post->_event_venue_ids) ) {
    		$result = apply_filters( 'wpml_object_id', $post->_event_venue_ids , 'event_listing', TRUE  );
    		return $result;
    	}	
    
    	return !empty($post->_event_venue_ids) ? $post->_event_venue_ids : '';
    }

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