46.227638, "lng" => 2.213749]; // france if (isset($mp_settings_coordinates_default)) $mp_coordinates_default = $mp_settings_coordinates_default; /** * to add a tag, like defer or async, to a script */ function mp_tag_scripts($tag, $handle) { if ('mp_googe_api' === $handle) return str_replace(' src="', ' async src="', $tag); return $tag; } add_filter('script_loader_tag', 'mp_tag_scripts', 10, 2); /** * when 'shortcode' found in page, enqueue scripts and styles, * run php script, and replace shortcode by return value */ function mp_add_div() { // https://developers.google.com/maps/documentation/javascript/marker-clustering $marker_clusterer = "https://unpkg.com/@googlemaps/markerclusterer/dist/index.min.js"; wp_enqueue_style( 'mp_style', plugins_url('styles/mp_style.css', __FILE__), '', '', ''); wp_enqueue_script('mp_errors_maps', plugins_url('scripts/mp_errors_map.js', __FILE__), '', '', true); wp_enqueue_script('mp_marker_clusterer', $marker_clusterer, ['mp_errors_maps'], '', true); wp_enqueue_script('mp_init_map', plugins_url('scripts/mp_init_map.js', __FILE__), ['mp_marker_clusterer'],'', true); wp_enqueue_script('mp_google_api', mp_url_api(), ['mp_init_map'], '', true); mp_add_to_scripts(); $mp_api_script = '
'; return $mp_api_script; } add_shortcode('lejourduprof_map', 'mp_add_div'); /** * when a post is published, check its coordinates */ function post_published_coordinates($id, $post) { $coordinates_valid = true; $coordinates = mp_get_coordinates($id, $coordinates_valid); if ( ! add_post_meta( $id, 'coordinates', $coordinates, true ) ) update_post_meta( $id, 'coordinates', $coordinates ); if ( ! add_post_meta( $id, 'coordinates_valid', $coordinates_valid, true ) ) update_post_meta( $id, 'coordinates_valid', $coordinates_valid ); } add_action( 'publish_post', 'post_published_coordinates', 10, 2 ); ?>