- สถานะ
- แก้ไขแล้วโดยผู้พัฒนา
- แก้ไขใน
- 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’