Je voudrais "géolocaliser" tous mes messages et les afficher sur une seule carte Google.
google-maps
geo-data
alekone
la source
la source
Réponses:
Peut le faire sans aucun plugin, vous n'avez besoin que de l' API Google Maps .
Veuillez noter que si vous prévoyez d'avoir 20 marqueurs ou plus sur une seule page, vous devez géolocaliser les publications en utilisant des coordonnées et non des adresses.
Pour enregistrer les coordonnées d'une adresse, vous pouvez:
Comment implémenter la deuxième option n'est pas strictement liée à la question, et je ne prendrai pas en compte ma réponse, mais consultez cet exemple d'API Maps pour voir à quel point il est simple de récupérer les coordonnées d'une adresse.
Donc je suppose dans cette réponse que les postes ont un « coords » champ personnalisé où les coordonnées sont stockées sous forme de chaîne de deux valeurs séparées par des virgules, comme someting:
'38.897683,-77.03649'
.Je suppose également qu'un modèle de page est enregistré dans le fichier «page-google-map.php».
Mettez le code suivant dans
functions.php
Comme vous pouvez le voir, dans le modèle de page de carte, je mets en file d'attente
mygmap.js
situé dans le sous-dossier 'js' du thèmeaussi, en bouclant les messages, je remplis un tableau
$map_data
et en utilisantwp_localize_script
je passe ce tableau aux js de la page.Maintenant,
mygmap.js
contiendra:Le javascript n'est pas lié à WP, et je ne mets ici que pour montrer l'utilisation de
map_data
var. Je ne suis pas développeur js et le code est plus ou moins entièrement repris d' iciC'est tout. Créez simplement le modèle de page et insérez un div avec l'id 'map', quelque chose comme:
Bien sûr, le div peut être stylisé avec css, et notez que les fenêtres d'informations des marqueurs peuvent également être stylisées: dans le css, utilisez
h3.marker-title
pour styliser le titre de la fenêtre d'informations etdiv.marker-desc
pour styliser le contenu.Notez que le centre de la carte est calculé automatiquement et si vous souhaitez modifier le zoom par défaut, vous devez mettre un champ personnalisé «map_zoom» dans la page affectée au modèle de page de carte.
J'espère que cela aide.
la source
(37.983917, 23.729359899999963)
où puis-je éditer le code afin qu'il puisse utiliser les cordons avec des supports autour d'eux. Ma tentative a échoué. Merci pour cette réponse mais c'est génial!$meta_coords = get_post_meta( get_the_ID(), 'coords', true );
à$meta_coords = trim(get_post_meta( get_the_ID(), 'coords', true ), '()');
et bien sûr, remplacercoords
le champ réel des utilisations du plugin pour les coordonnées du magasin.