Home › Forum › Amministrazione WP › Api di Google map sui post
-
AutorePost
-
-
4 Dicembre 2006 alle 17:08 #2684maximjustPartecipante
Salve, inanzitutto grazie per il bel lavoro svolto.
Volve farvi una domanda, è possibile caricare codice jscript nei post di WP?
Mi servirebbe per esempio per inseire le Api di Google map sui post…Grazie anticipatamente
-
4 Dicembre 2006 alle 23:34 #42024SteveAglAmministratore del forum
Se il codice javascript non cambia a seconda del post, puoi inserirlo in maniera fissa nell’header del template e quindi renderlo disponibile per tutti i post.
-
5 Dicembre 2006 alle 15:28 #42043matteoraggiPartecipante
mi parea ci fosse un plug in che fa questo..
-
6 Dicembre 2006 alle 8:09 #42057maximjustPartecipante
Boh..ho provato, ma non riesco..
Il codice non cambia a seconda del post,cambiano le coordinate e il numero di punti..perrò la vedrei più una cosa da inserire diversamente per ogni post.
Grazie.
-
6 Dicembre 2006 alle 9:44 #42059SteveAglAmministratore del forum
Il codice non cambia a seconda del post,cambiano le coordinate e il numero di punti..
allora puoi usare i Campi Personalizzati: ad ogni post associ solo le coordinate, mentre il grosso del codice javascript lo lasci nell’header e con un paio di righe di PHP estrai le coordinate e integri il codice javascript per mostrare la mappa.
-
6 Dicembre 2006 alle 12:13 #42060maximjustPartecipante
Ho provato ad inserire il lo script iniziale dell’heder <script src=”http://maps.google.com/maps?file=api&v=2&key=Mia chiave”
type=”text/javascript”></script>
<script type=”text/javascript”>
Ma non funziona, mi sballa totalmente il template?
Come potrei risolvere il problema, è possibile caricare tipo wrapper pagine html?
Oppure, più semplicemnte, esiste un plugin?
Grazie.
-
6 Dicembre 2006 alle 13:21 #42061SteveAglAmministratore del forum
allora, in
header.php
metti qualcosa tipo:<script src="http://maps.google.com/maps?file=api&v=2&key=abcdefg"
type="text/javascript"></script>
quindi, ammesso che tu abbia inserito in un post due campi personalizzati aventi come chiave rispettivamente latitudine e longitudine, ne prendi i valori:
<?php
$latitudine = get_post_meta($post_id, 'latitudine', TRUE);
$longitudine= get_post_meta($post_id, 'longitudine', TRUE);
/*
$post_id è la variabile contenente l'ID numerico del Post
*/
?>
e ti stampi il codice javascript relativo al post:
<script type="text/javascript">
//<![CDATA[
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(<?php echo $latitudine; ?>, <?php echo $longitudine; ?>), 13);
}
}
//]]>
</script>
E’ un esempio, che potrai facilmente personalizzare.
-
6 Dicembre 2006 alle 13:24 #42062SteveAglAmministratore del forum
-
6 Dicembre 2006 alle 15:20 #42064maximjustPartecipante
Inanzittutto grazie mille per il tuo aiuto..
Li ho provati quasi tutti, però non mi soddisfano molto, tutti permetto al massimo di inserire una mappa, ma manca completamente la parte di personalizzazione, come inserire in modo multiplo i marker, cioè i plugin permettono al massimo l’inserimento di un punto di interesse e non posso fare tutte quelle configurazioni come ombre diverse, multi marker..ecc..ecc..
Le soluzioni a questo punto sono due:
1-creo una pagina html esterna e,se esiste un plugin del genere, la carico in finestra sui post.
2-un plug in che permetta l’inserimento in modo indipendente di java script.
Grazie mille per l’aiuto che mi state fornendo
-
6 Dicembre 2006 alle 16:42 #42065SteveAglAmministratore del forum
1-creo una pagina html esterna e,se esiste un plugin del genere, la carico in finestra sui post.
questo plugin dovrebbe fare al caso tuo:
-
7 Dicembre 2006 alle 10:59 #42077maximjustPartecipante
Al fine di aiutare tutti gli utenti, vi dico come mi sono mosso.
Inanzitutto ringrazio mrbrown per le dritte.
Allora, tutti i plugin da me trovati, non permetto la gestione di un multi-marked oppure le personalizzazioni delle visualizzazioni.
Cosଠsto risolvendo il problema in questo modo:
1-creo il mio codice api
2-lo salvo nella root o in una sotto cartella con estensione(io ho usato .php)
3-lo richiamo tramite i frame con il seguente codice html all’interno del post
<iframe align=”center”
SRC=”http://sitoweb/mappa.html”
TITLE=”mappa” width=”300px” height=”200px”
scrolling=”no” frameborder=”0″>
Se non visualizzate la pagina, il vs. browser non supporta Iframe, aggiornatelo
</iframe>
Rimane il problema della gestione di un iframe all’interno del post, se avete un altro metodo di inclusione, non esitate a postarlo
Grazie.
-
7 Dicembre 2006 alle 11:36 #42079SteveAglAmministratore del forum
Rimane il problema della gestione di un iframe all’interno del post,
L’ultimo plugin che ti ho segnalato dovrebbe permetterti di includere delle pagine esterne a WP senza ricorrere ai frame. L’hai provato?
-
7 Dicembre 2006 alle 11:48 #42080maximjustPartecipante
L’ho provato..ma non ho capito bene come funziona, dopo cerco di testarlo meglio..il problema dell’iframe è che anche facendo corrispondere le dimensioni della mappa con quelle dell’ iframe, non so perchè, ma per esempio mi nasconde i copyright di google..
-
13 Settembre 2008 alle 0:04 #57669simone88Partecipante
Ciao! Io vorrei fare una cosa del genere con quel codice che ha scritto mrbrown, però non mi funziona. cioè allora io vorrei inserire all’interno dei campi personalizzati di ogni post, alcune query come ad esempio latitudine e longitudine e altre cose che possono essermi utili all’interno dello script di google maps.
Però seguendo il codice che ha postato mrbrown, lo script non viene riempito con la latitudine e la longitudine che ho inserito all’interno dei campi personalizzati.
Allora come se lo script PHP non riuscisse ad estrapolare i valori, perchè se invece faccio
<?php the_meta(); ?>
i campi personalizzati mi vengono scritti in quella maledetta lista.
Siamo sicuri che quel codice php sia buono?
<?php
$latitudine = get_post_meta($post_id, 'latitudine', TRUE);
$longitudine= get_post_meta($post_id, 'longitudine', TRUE);
/*
$post_id è la variabile contenente l'ID numerico del Post
*/
?>
Ma dove li devo inserire tutti questi codici?? all'interno del loop o nei tag
<head>
cioè da quello che ho capito questa funzione che fa visualizzare i meta personalizzati è possibile effettuarla solo all'interno del loop di wordpress, ma se il codice javascript di google maps va inserito all'interno del tag head, come faccio a far visualizzare le coordinate all'interno di una parte dove non c'è il loop?? non so se mi sono spiegato bene!
Non è che all'interno di un javascript non è possibile richiamare funzioni php? come è nel secondo codice????
<script type="text/javascript">
//<![CDATA[
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(<?php echo $latitudine; ?>, <?php echo $longitudine; ?>), 13);
}
}
//]]>
</script>
Vi prego mi servirebbe molto una mano e non so a chi chiederla! Qualcuno mi può aiutare?
-
13 Settembre 2008 alle 10:13 #57679SteveAglAmministratore del forum
Ciao! Io vorrei fare una cosa del genere con quel codice che ha scritto mrbrown, però non mi funziona.
Dunque, l’approccio da me suggerito può servire a mostrare, nella pagina del singolo articolo, una mappa di Google. Per ottenere lo scopo, il sistema migliore secondo me, è usare i campi personalizzati, dove puoi memorizzare per ogni articolo, latitudine, longitudine ed eventuali altri dati.
Per estrapolare i dati si usa:
$latitudine = get_post_meta($post_id, 'latitudine', TRUE);
per stampare il valore di
$latitutine
, bisogna fareecho $latitutine
.attenzione a
$post_id
: all’interno disingle.php
potrebbe essere vuota e va sostituita o con$post->ID
oppure tagliamo la testa al toro e mettiamo dove ci pare$post_id = get_query_var('p');
Del Loop non ce ne frega. A noi basta avere la variabile con l’ID del post. Con
get_query_var()
la prendiamo direttamente dall’indirizzo della pagina.Ma dove li devo inserire tutti questi codici??
questo dipende dal codice che ti da google. Se devi mettere tutto tra i tag
<head>
allora puoi fare una semplice operazione all’interno di header.php:<?php
if (is_single()){
$post_id = get_query_var('p');
$latitudine = get_post_meta($post_id, 'latitudine', TRUE);
$longitudine = get_post_meta($post_id, 'longitudine', TRUE);
?>
<script type="text/javascript">
//<![CDATA[
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(<?php echo $latitudine; ?>, <?php echo $longitudine; ?>), 13);
}
}
//]]>
</script>
<?php } ?>
attenzione poi che in
single.php
devi avere un<div id="map"></div>
che ti contenga la mappa.Non è che all’interno di un javascript non è possibile richiamare funzioni php?
faccio finta di non aver letto
-
13 Settembre 2008 alle 14:27 #57688simone88Partecipante
Ciao, grazie di avermi risposto cosi velocemnete!!
Una piccola cosa, cioè inserendo il codice che mi hai realizzato con molta pazienza, all’interno del codice javascript di google, nonmi vengono scrite le coordinate! insomma nn vuole proprio funzionare! allora io inserisco quel codice attraverso la modifica del design del template header.php. ma non funziona.
come se le coordinate non sarebbero state scritte all’interno dei campi personalizzati, ma la cosa strana è che se metto il codice php per vederei meta dati personalizzati, wordpress mi scrive le coordinate che avevo precedentemente inserito nei dati personalizzati.
sbaglio io qualcosa?? cioè il passaggio di scrivere il solito contenitore nel file single.php viene dopo, in primo luogo devo far scrivere all’interno del codice javascript quelle beneddette coordinate!!!
Non so che passaggio sbaglio! io ho copiato iteramente il tuo codice all’interno del file header.php del mio template.
cosa mi potresti consigliare mio caro mrbrown!
-
13 Settembre 2008 alle 19:26 #57702simone88Partecipante
Ahhh scusate allora ho trovato l’arcano! cioè io avevo messo i pemanlink non con l’id dell’articolo ma con il nome e la data di pubblicazione!
Infatti adesso che ho messo come permanlink l’id il tuo script funziona alla perfezione!!!!!
c’è un modo per far funzionare il tuo script con i permanlink con nome e data?
-
14 Settembre 2008 alle 9:39 #57716simone88Partecipante
Scusate se sto facendo tutto questo up, cmq sono riuscito a far capire quale ID è quello della pagina, anche senza il permalink che ti fa vedere l’id!
Quindi anche se si utilizza il pemalink con il nome lo script funziona cmq!
ho inserito questo codice!
$post_id = $post->ID;
Adesso ho capito veramente quasi tutto e procedo alla personalizzazione di quello script alle mie esigenze!
Grazie di tutto!
-
27 Marzo 2009 alle 16:14 #64165oviPartecipante
allora, in
header.php
metti qualcosa tipo:<script src="http://maps.google.com/maps?file=api&v=2&key=abcdefg"
type="text/javascript"></script>
quindi, ammesso che tu abbia inserito in un post due campi personalizzati aventi come chiave rispettivamente latitudine e longitudine, ne prendi i valori:
<?php
$latitudine = get_post_meta($post_id, 'latitudine', TRUE);
$longitudine= get_post_meta($post_id, 'longitudine', TRUE);
/*
$post_id è la variabile contenente l'ID numerico del Post
*/
?>
e ti stampi il codice javascript relativo al post:
<script type="text/javascript">
//<![CDATA[
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(<?php echo $latitudine; ?>, <?php echo $longitudine; ?>), 13);
}
}
//]]>
</script>
E’ un esempio, che potrai facilmente personalizzare.
Quindi la parte iniziale lo metto nel header. Ho creato gli attributi al mio post impostando long e lat.
La parte successiva la metto tutta nel file single.php del tema?
-
27 Marzo 2009 alle 16:32 #64166oviPartecipante
Ok, ho seguito il post più sotto, 34941.
Ho inserito nel header il dovuto. Ho inserito nel header anche il codice per l’API:
<script src="http://maps.google.com/maps?file=api&v=2&key=mioAPI"
type="text/javascript"></script>
Nel single ho inserito il div mentre nel post ho inserito due "custom field" con longitudine e latitudine indicandone i valori nei campi "value".
Però nel post non visualizzo nada.
Presumo non sia più valida la cosa nel WP 2.7.1 `
-
-
AutorePost
- Devi essere connesso per rispondere a questo topic.