Position actuelle: Accueil> Derniers articles> Intégrer date_sunset () dans le plugin wordpress pour afficher les informations locales du coucher du soleil

Intégrer date_sunset () dans le plugin wordpress pour afficher les informations locales du coucher du soleil

M66 2025-05-31

Lors du développement de plug-ins WordPress, nous devons souvent fournir un contenu dynamique basé sur l'emplacement géographique de l'utilisateur, tels que le lever du soleil et le coucher du soleil. La fonction PHP Date_sunset () peut facilement calculer l'heure du coucher du soleil. Cependant, pour afficher le temps de coucher du soleil "local" de l'utilisateur en temps réel, une technologie de positionnement est nécessaire.
Cet article vous amènera à l'implémenter étape par étape, intégrer date_sunset () dans le plug-in wordpress et afficher dynamiquement l'heure du coucher du soleil.

Étape 1: Obtenez l'emplacement géographique de l'utilisateur (latitude et longitude)

PHP s'exécute du côté du serveur et ne peut pas accéder directement à l'emplacement géographique du périphérique utilisateur. Par conséquent, nous devons utiliser JavaScript pour obtenir la latitude et la longitude de l'utilisateur, et transmettre les informations au serveur via Ajax.

 // Dans votre fichier maître du plugin ou spécifique PHP Ajouter au fichier
function m66net_enqueue_location_script() {
    wp_enqueue_script('m66net-location-script', 'https://m66.net/js/location.js', array('jquery'), null, true);
    
    // passer wp_localize_script Paquet AJAX URL Passer à JS
    wp_localize_script('m66net-location-script', 'm66net_ajax_object', array(
        'ajax_url' => admin_url('admin-ajax.php')
    ));
}
add_action('wp_enqueue_scripts', 'm66net_enqueue_location_script');

Exemple de fichier location.js (stocké dans https://m66.net/js/location.js ):

 jQuery(document).ready(function($){
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(function(position) {
            $.post(m66net_ajax_object.ajax_url, {
                action: 'm66net_send_location',
                latitude: position.coords.latitude,
                longitude: position.coords.longitude
            }, function(response) {
                $('#m66net-sunset-time').html(response);
            });
        });
    } else {
        $('#m66net-sunset-time').html('Impossible d'obtenir vos informations de localisation');
    }
});

Étape 2: Traitez la demande Ajax et calculez le temps de coucher du soleil

Ensuite, nous créons une interface AJAX dans WordPress qui traite les informations de géolocalisation des utilisateurs et renvoie le temps du coucher du soleil.

 function m66net_calculate_sunset() {
    if (isset($_POST['latitude']) && isset($_POST['longitude'])) {
        $latitude = floatval($_POST['latitude']);
        $longitude = floatval($_POST['longitude']);
        
        $timestamp = time();
        
        $sunset = date_sunset($timestamp, SUNFUNCS_RET_STRING, $latitude, $longitude, 90.583333, date('Z') / 3600);
        
        echo 'Votre temps de coucher de soleil local est:' . $sunset;
    } else {
        echo 'Impossible de calculer l'heure du coucher du soleil';
    }
    wp_die(); // important:terminaison AJAX traiter avec
}

add_action('wp_ajax_m66net_send_location', 'm66net_calculate_sunset');
add_action('wp_ajax_nopriv_m66net_send_location', 'm66net_calculate_sunset');

Expliquons:

  • SUNFUNCS_RET_STRING LET DATE_SUNSET () Renvoie la chaîne de temps formatée, comme 19:21 .

  • 90.583333 est l'angle de pression d'air au niveau de la mer standard, qui est généralement utilisé par défaut.

  • La date ('z') / 3600 sera corrigée en fonction du fuseau horaire du serveur.

Étape 3: Ajoutez un emplacement à la page qui montre le temps de coucher du soleil

Enfin, ajoutez un morceau de HTML où vous devez afficher le temps de coucher du soleil (comme un article, une page ou un gadget):

 <div id="m66net-sunset-time">Obtenir du temps de coucher...</div>

Tant que l'utilisateur visite la page, JavaScript sera déclenché, l'emplacement de l'utilisateur sera automatiquement détecté et l'heure exacte du coucher du soleil sera affichée!

Conseils

  • Si vous souhaitez prendre en charge HTTPS, assurez-vous que vos ressources M66.NET vont également à HTTPS, sinon le navigateur bloquera les demandes de contenu mixtes.

  • Le résultat de date_sunset () est la norme de temps du serveur. Si le plug-in souhaite s'adapter à différentes régions de serveur, elle nécessite également un traitement de fuseau horaire plus raffiné.

  • Veuillez ajouter des invites d'erreur raisonnables à votre plug-in, par exemple lorsque l'utilisateur refuse de partager les informations de localisation.