Essayez sans attendre l'hébergement proposé par WordPress
-15% sur le premier mois avec le code 2025PRESS15AFF

Essayer maintenant

Créer un plugin WordPress pour afficher les données de l’espace (NASA + IPGeolocation)

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.

  1. Dans wp-content/plugins, créez un dossier : astro-widget.
  2. 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.