IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Leaflet Map (carte de tous les articles wordpress) et Jquery


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Bricoleur du dimanche
    Inscrit en
    Septembre 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Bricoleur du dimanche

    Informations forums :
    Inscription : Septembre 2022
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Leaflet Map (carte de tous les articles wordpress) et Jquery
    Bonjour,
    Je débute dans une exploitation plus poussée de Wordpress (petit à petit...), et suis confronté à un souci d'affichage de l'ensemble de mes articles sur une carte Leaflet (sans utilisation de plugin).
    J'ai créé un modèle de page destiné à afficher uniquement cette carte, dont les marqueurs doivent être ajoutés et géolocalisés grâce à deux champs ACF.
    Pour le moment, j'affiche ma carte, et une requête me permet d'obtenir les infos relatives à chaque article (latitude, longitude, titre, permalien notamment, à compléter par la suite) (je parviens en tout cas à les afficher via "echo").
    Il me reste désormais à générer le code propre à chaque marqueur.
    Voici le code de mon modèle de page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
     
     
    <?php
     
    /*Template Name: page_carte*/
    /*Template Post Type: page*/
     
    ?>
     
    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.3/dist/leaflet.css" integrity="sha256-kLaT2GOSpHechhsozzB+flnD+zUyjE2LlfWPgU04xyI=" crossorigin=""/>
    <script src="https://unpkg.com/leaflet@1.9.3/dist/leaflet.js" integrity="sha256-WBkoXOwTeyKclOHuWtc+i2uENFpDZ9YPdf5Hf+D7ewM=" crossorigin=""></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
     
    <div id="mapid" style="width:100%; height: 50%;" class="desktop_visible">
     
    <?php 
     
    // 1. On définit les arguments pour définir ce que l'on souhaite récupérer
    $args = array(
        'post_type' => 'post',
        'post_status'=>'publish',
        'posts_per_page' => -1,
    );
     
    // 2. On exécute la WP Query
    $my_query = new WP_Query( $args );
     
    // 3. On lance la boucle !
    if( $my_query->have_posts() ) :
     
    while( $my_query->have_posts() ) : $my_query->the_post();
     
    $lat = get_field("latitude_depart");
    $lng = get_field('longitude_depart');
    $depart = get_field('depart');
    $titre = the_title();
    $url = the_permalink();
     
    echo $titre;
    echo "<br>";
     
    echo $depart;
    echo "<br>";
     
    echo $lat;
    echo " / ";
    echo $lng;
    echo "<br>";
     
    echo "<br>";
     
    endwhile;
    endif;
     
    // 4. On réinitialise à la requête principale (important)
    wp_reset_postdata();
     
    ?>
     
    </div>
     
     
    <script>
     
    jQuery(function($) {
    var map = L.map('mapid').setView([46.622013, 1.853553], 6);
     
    L.tileLayer('https://{s}.tile.jawg.io/jawg-sunny/{z}/{x}/{y}{r}.png?access-token={accessToken}', {
    	attribution: '<a href="http://jawg.io" title="Tiles Courtesy of Jawg Maps" target="_blank">&copy; <b>Jawg</b>Maps</a> &copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',
    	minZoom: 0,
    	maxZoom: 22,
    	subdomains: 'abcd',
    	accessToken: 'vLlwAEQLqEYDmQeAAg3L4iL6JO4txM4sJF3zbA1ooE62dQvSIJ1GtXUPUH8bPB7l'
    }).addTo(map);
     
    var marker = L.marker([47.385705, 4.175862]).addTo(map);
     
    $('.marker').each(function() {
       var lat = $(this).attr('data-lat');
       var lng = $(this).attr('data-lng');
       var name = $(this).attr('data-title');
       var marker = new L.marker([ lat, lng ]).bindPopup( name ).addTo( map );
       });
     
    });
     
    </script>
    Pour alimenter "marker", j'ai cet extrait de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div class="marker"  data-url="<?php the_permalink(); ?>"  data-title='<h3><a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a></h3>' data-lat="<?php echo $lat; ?>" 
    data-lng="<?php echo $lng; ?>">
    </div>
    que je pensais insérer dans la div de la carte, comme le préconise la page que j'utilise comme base ( https://www.copier-coller.com/creer-...-et-wordpress/

    Mais là, je rencontre des difficultés. Dès que j'intègre ce code dans la boucle while, j'obtiens une erreur critique.

    Une âme charitable pourrait-elle m'éclairer ?
    Merci d'avance !

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Points : 1 876
    Points
    1 876
    Par défaut
    Citation Envoyé par christophe2802 Voir le message
    Dès que j'intègre ce code dans la boucle while, j'obtiens une erreur critique.
    Hé bien postez le détail de cette erreur. Sûrement, essayer de comprendre le message d'erreur vous éviterait de jouer à la devinette.

  3. #3
    Candidat au Club
    Homme Profil pro
    Bricoleur du dimanche
    Inscrit en
    Septembre 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Bricoleur du dimanche

    Informations forums :
    Inscription : Septembre 2022
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Selon WordPress, "Il y a eu une erreur critique sur votre site Web". 😋
    Y-a-t-il une solution pour en savoir plus ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 321
    Points : 642
    Points
    642
    Par défaut
    Bonjour,

    Active le mode debug de Wordpress pour en savoir plus sur l'erreur : https://fr.wordpress.org/support/art...-in-wordpress/

Discussions similaires

  1. [Spip] Afficher tous les articles d'une sous rubrique
    Par nanoplatine dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 16/02/2008, 12h08
  2. [MediaWiki] Ajouter du code php dans tous les articles
    Par *WaNa* dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 04/02/2008, 23h49
  3. fonction recherche tous les articles commencant par *
    Par Daniel MOREAU dans le forum Access
    Réponses: 4
    Dernier message: 31/01/2007, 16h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo