WPML
Stato
Risolto dall’autore
Risolto in
MapPress 2.95.7
Plugin/tema correlato
MapPress Maps for WordPress
Tag dell’argomento
Compatibility

Panoramica del problema

Quando usi MapPress con WPML, potresti riscontrare che i Punti di Interesse (POI), come le città salvate su una mappa, non vengono tradotti. Questo accade perché le stringhe dei POI vengono memorizzate in base alla lingua usata durante la loro creazione e non sono automaticamente disponibili per la traduzione.

Soluzione alternativa

Assicurati di avere un backup completo del sito prima di procedere.


  • Aggiungi il seguente codice al file functions.php del tuo tema.
    // 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;
    				}
    			}
    		}
    	}
    	
    }
            


  • Salva di nuovo le tue mappe in “MapPress > Maps”.

  • Vai su “WPML > Traduzione stringhe” e traduci le stringhe nel dominio ‘mappress’

Tutti i problemi noti →