'Paris',
'unite' => 'celsius',
'couleur' => 'blue'
), $atts);
ob_start();
?>
'YOUR_OPENWEATHER_API_KEY', // À remplacer par votre clé API
'ajax_url' => admin_url('admin-ajax.php')
));
}
// Fonction AJAX pour obtenir les données météo
add_action('wp_ajax_get_weather_data', 'get_weather_data');
add_action('wp_ajax_nopriv_get_weather_data', 'get_weather_data');
function get_weather_data() {
$adresse = sanitize_text_field($_POST['adresse']);
$api_key = 'YOUR_OPENWEATHER_API_KEY'; // À remplacer par votre clé API
// Géocodage de l'adresse pour obtenir les coordonnées
$geocode_url = "https://api.openweathermap.org/geo/1.0/direct?q={$adresse}&limit=1&appid={$api_key}";
$geocode_response = wp_remote_get($geocode_url);
if (is_wp_error($geocode_response)) {
wp_send_json_error('Erreur lors de la récupération des coordonnées.');
}
$geocode_data = json_decode(wp_remote_retrieve_body($geocode_response), true);
if (empty($geocode_data)) {
wp_send_json_error('Adresse non trouvée.');
}
$lat = $geocode_data[0]['lat'];
$lon = $geocode_data[0]['lon'];
// Récupération des données météo
$weather_url = "https://api.openweathermap.org/data/2.5/weather?lat={$lat}&lon={$lon}&appid={$api_key}&units=metric&lang=fr";
$weather_response = wp_remote_get($weather_url);
if (is_wp_error($weather_response)) {
wp_send_json_error('Erreur lors de la récupération des données météo.');
}
$weather_data = json_decode(wp_remote_retrieve_body($weather_response), true);
wp_send_json_success($weather_data);
}
?>
Module Météo WordPress
Configuration du module
Ce module peut être ajouté à n'importe quelle page ou article WordPress en utilisant le shortcode [afficher_meteo] avec les paramètres optionnels :
adresse
L'adresse pour laquelle afficher la météo (par défaut: Paris)
Ex: [afficher_meteo adresse="Lyon"]
unite
Unité de température (celsius ou fahrenheit, par défaut: celsius)
Ex: [afficher_meteo unite="fahrenheit"]
couleur
Couleur du thème (blue, green, red, etc., par défaut: blue)
Ex: [afficher_meteo couleur="red"]
Important : Vous devez obtenir une clé API gratuite sur OpenWeatherMap et la remplacer dans le code.
Démonstration du module
Paris
Chargement...
--°
--
Humidité
--%
Vent
-- km/h
Pression
-- hPa
Prévisions pour les 5 prochains jours
Lundi
Pluie modérée
18°
12°
Chargement des données météo...
