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’

כל התקלות הידועות →