WPML
สถานะ
แก้ไขแล้วโดยผู้พัฒนา
ปลั๊กอิน/ธีมที่เกี่ยวข้อง
WP Event Manager
แท็กหัวข้อ
Compatibility

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

เมื่อแปลเหตุการณ์ที่สร้างด้วย WP Event Manager และ WPML ฟิลด์ Organizer และ Venue จะไม่ได้แสดงในภาษาเริ่มต้นบนส่วนหน้าเว็บไซต์เสมอไป

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

โปรดตรวจสอบให้แน่ใจว่าคุณมีการสำรองข้อมูลทั้งหมดของเว็บไซต์ก่อนดำเนินการต่อ

คุณจะต้องทำการเปลี่ยนแปลงต่อไปนี้


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

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