Les passionnés d’astronomie aiment accéder à des informations en temps réel sur le ciel : phases de la lune, lever et coucher du soleil, image du jour de la NASA, etc. En tant que développeur WordPress, créer un plugin personnalisé qui regroupe ces données permet d’offrir un contenu enrichi et dynamique. Cet article vous guide pas à pas dans la création d’un plugin WordPress qui intègre les API de la NASA et IPGeolocation.
Préparer l’environnement de développement
Créons la base du plugin.
- Dans
wp-content/plugins
, créez un dossier :astro-widget
. - Créez un fichier
astro-widget.php
et ajoutez le header obligatoire pour déclarer un plugin WordPress :
<?php
/*
Plugin Name: Astro Widget
Description: Affiche les données de l’API NASA et IPGeolocation
Version: 1.0
Author: Etienne Mommalier
*/
Intégrer l’API IPGeolocation
L’API IPGeolocation est gratuite jusqu’à 1000 requêtes par jour ce qui vous laissera un peu de marge. Le niveau d’après est à 20€ par mois pour 100 000 requêtes mensuelles. Commencez par créer un compte et récupérer votre clé API affichée directement sur le dashboard.
Nous ferons le plugin pour récupérer les informations par rapport à Toulouse. Mais il est aussi possible de récupérer la localisation du visiteur pour afficher les informations qui le concerne.
Récupérer les phases de la lune
Utilisez leur API publique : https://ipgeolocation.io/astronomy-api.html#documentation-overview
Exemple simple avec wp_remote_get
:
function astro_get_geolocation_data() {
$response = wp_remote_get('https://api.ipgeolocation.io/astronomy?apiKey=VOTRE_CLE_API&location=Toulouse, FR');
if (is_wp_error($response)) return null;
return json_decode(wp_remote_retrieve_body($response), true);
}
Afficher la phase lunaire et les horaires solaires
function astro_render_geolocation_data() {
$data = astro_get_geolocation_data();
if (!$data) return '<p>Impossible de charger les données astronomiques.</p>';
$output = '<ul>';
$output .= '<li>Phase lunaire : ' . esc_html($data['astronomy']['moon_phase']) . '</li>';
$output .= '<li>Lever du soleil : ' . esc_html($data['astronomy']['sunrise']) . '</li>';
$output .= '<li>Coucher du soleil : ' . esc_html($data['astronomy']['sunset']) . '</li>';
$output .= '</ul>';
return $output;
}
Intégrer l’API NASA (APOD) dans le plugin WordPress
Pour commencer il vous faut remplir un formulaire pour récupérer une clé API. Cette clé Ensuite l’accès à l’image du jour est gratuit.
Récupérer l’image du jour
Documentation : https://api.nasa.gov/
function astro_get_nasa_apod() {
$response = wp_remote_get('https://api.nasa.gov/planetary/apod?api_key=VOTRE_CLE_API');
if (is_wp_error($response)) return null;
return json_decode(wp_remote_retrieve_body($response), true);
}
Afficher les données NASA
function astro_render_nasa_apod() {
$data = astro_get_nasa_apod();
if (!$data) return '<p>Image NASA non disponible.</p>';
$output = '<h3>' . esc_html($data['title']) . '</h3>';
$output .= '<img src="' . esc_url($data['url']) . '" alt="NASA APOD" style="max-width:100%;">';
$output .= '<p>' . esc_html($data['explanation']) . '</p>';
return $output;
}
Ajouter un shortcode WordPress
function astro_shortcode() {
$output = '<div class="astro-widget">';
$output .= astro_render_geolocation_data();
$output .= astro_render_nasa_apod();
$output .= '</div>';
return $output;
}
add_shortcode('astro_widget', 'astro_shortcode');
Utilisation dans une page ou un article : [astro_widget]
Bonus : mettre en cache les données avec Transients API
Pour éviter d’appeler les API à chaque chargement on peut mettre les réponses des appels API en cache (transient) pour ne faire qu’un appel par jour par API. On affiche des données qui sont valable toute la journée, ça ne sert à rien de refaire des appels réguliers.
Aller plus loin
- Respecter les standards WordPress !
- Vérifier la localisation du visiteur pour afficher les informations qui le concernent.
- Intégrer des événements célestes (voir In-The-Sky.org, iCal ou scraping)
- Ajouter un système de design personnalisé (block editor, widget)
Conclusion
Avec ce plugin, vous proposez un contenu dynamique et engageant à vos visiteurs. C’est un excellent moyen de mêler passion, technique et d’illustrer votre compétence en développement WordPress. Idéal aussi pour enrichir un site de niche comme celui de l’astronomie.
Vous souhaitez voir le code entier du plugin, avec le système de cache et qui respecte toutes les bonnes pratiques WordPress ? Contactez moi.