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

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

เมื่อใช้ MapPress ร่วมกับ WPML คุณอาจพบว่าจุดที่น่าสนใจ (POI) เช่น เมืองที่บันทึกไว้ในแผนที่ไม่ได้รับการแปล สาเหตุเป็นเพราะสตริงข้อความ POI จะถูกจัดเก็บตามภาษาที่ใช้ในระหว่างการสร้าง และไม่พร้อมสำหรับการแปลโดยอัตโนมัติ

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

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


  • เพิ่มโค้ดต่อไปนี้ลงในไฟล์ functions.php ในธีมของคุณ
    // WPML Workaround for compsupp-4265: Translate Mappress POI fields
    if ( class_exists('Sitepress') ) { 
    
    	add_action('mappress_map_save', 'my_mappress_register_poi_strings');
    	function my_mappress_register_poi_strings($map) {
    
    		$fields = array('address','title','name','body');
    		if (empty($map->mapid) || empty($map->pois) || !is_array($map->pois))
    			return;
    
    		foreach ($map->pois as $i => $poi) {
    			foreach ($fields as $field) {
    				if (isset($poi->$field) && $poi->$field !== '') {
    					$key = "map_{$map->mapid}_poi_{$i}_{$field}";
    					do_action( 'wpml_register_single_string','mappress', $key, $poi->$field );
    				}
    			}
    		}
    	}
    
    	add_action('mappress_map_display', 'my_mappress_translate_poi_fields');
    	function my_mappress_translate_poi_fields($map) {
    
    		$fields = array('address','title','name','body');
    		if (empty($map->mapid) || empty($map->pois) || !is_array($map->pois))
    			return;
    
    		foreach ($map->pois as $i => $poi) {
    			foreach ($fields as $field) {
    				if (isset($poi->$field) && $poi->$field !== '') {
    					$key = "map_{$map->mapid}_poi_{$i}_{$field}";
    					$translated = apply_filters('wpml_translate_single_string', $poi->$field, 'mappress', $key);
    					$poi->$field = $translated;
    				}
    			}
    		}
    	}
    	
    }
            


  • บันทึกแผนที่ของคุณอีกครั้งใน “MapPress > Maps”

  • ไปที่ “WPML > การแปลสตริง” และแปลสตริงภายใต้โดเมน ‘mappress’

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