Geo Mashup: añadir iconos personalizados
Función para añadir iconos personalizados basados en una variable añadida a custom fields (country). Poner el nombre del icono en el campo y añadir la imagen en la carpeta. Desde custom.js llamamos a una imagen con el nombre añadido en el campo con +object.countries+
En el function.php del tema añadir el siguiente código para pasar el parametro de custom field country para mostrar los iconos
function my_geo_mashup_locations_json_filter( $json_properties, $queried_object ) {
$post_id = $queried_object->object_id;
$key = get_post_meta( $post_id, 'country', true);
$json_properties['countries'] = $key;
return $json_properties;
}
add_filter( 'geo_mashup_locations_json_object','my_geo_mashup_locations_json_filter', 10, 2 );
En custom.js añadir
GeoMashup.addAction( 'objectIcon', function( properties, object) {
if ( object.categories.length > 0 ) {
object.icon.image = properties.template_url_path + '/../../uploads/icons-location/'+object.countries+'48.png';
object.icon.iconSize = [ 48, 48 ];
object.icon.iconAnchor = [ 24, 48 ];
object.icon.iconShadow = properties.template_url_path + '/../../uploads/icons-location/shadow.png';
object.icon.shadowSize = new google.maps.Size(48, 48);
object.icon.shadowAnchor = [ 24, 48 ];
}else{ object.icon.image = properties.template_url_path + '/../../uploads/icons-location/more.png' ;
}
} );
En el function.php del tema añadir el siguiente código para pasar el parametro de custom field country para mostrar los iconos
function my_geo_mashup_locations_json_filter( $json_properties, $queried_object ) {
$post_id = $queried_object->object_id;
$key = get_post_meta( $post_id, 'country', true);
$json_properties['countries'] = $key;
return $json_properties;
}
add_filter( 'geo_mashup_locations_json_object','my_geo_mashup_locations_json_filter', 10, 2 );
En custom.js añadir
GeoMashup.addAction( 'objectIcon', function( properties, object) {
if ( object.categories.length > 0 ) {
object.icon.image = properties.template_url_path + '/../../uploads/icons-location/'+object.countries+'48.png';
object.icon.iconSize = [ 48, 48 ];
object.icon.iconAnchor = [ 24, 48 ];
object.icon.iconShadow = properties.template_url_path + '/../../uploads/icons-location/shadow.png';
object.icon.shadowSize = new google.maps.Size(48, 48);
object.icon.shadowAnchor = [ 24, 48 ];
}else{ object.icon.image = properties.template_url_path + '/../../uploads/icons-location/more.png' ;
}
} );