Skip to content

Instantly share code, notes, and snippets.

@mattradford
Last active February 16, 2023 12:08
Show Gist options
  • Star 24 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save mattradford/bb7679a2671b99ada655 to your computer and use it in GitHub Desktop.
Save mattradford/bb7679a2671b99ada655 to your computer and use it in GitHub Desktop.
ACF Get Directions map link
<?php
$location = get_field('map_location');
if ( !empty( $location ) ) :
$map_url = 'https://www.google.com/maps/dir/?api=1&destination=' . $location['lat'] . ',' . $location['lng'];
echo '<a href=". esc_url( $map_url ) . '" rel="nooopener">Get directions</a>';
endif;
?>
<p>This should produce a link like this:</p>
<a href="https://www.google.com/maps/dir/?api=1&destination=51.072159,1.088130">Get directions</a>
See <a href="https://developers.google.com/maps/documentation/urls/get-started#directions-action">https://developers.google.com/maps/documentation/urls/get-started#directions-action</a>
@samkent
Copy link

samkent commented Sep 1, 2015

Awesome, works perfectly! Thank you.

@ryan-noakes
Copy link

ryan-noakes commented Jun 12, 2016

Agreed, works perfectly. Thanks for posting this!

edit: I found that this does not work with mobile devices, however this works:
<a href="https://www.google.com/maps/place/<?php echo $location['address']; ?>" target="_blank"><?php _e('Get Directions','roots'); ?></a>
Desktop/laptop users have to click the Directions button when the Google Map page loads, but mobile users don't have the Maps app saying it can't use the address

@Frithir
Copy link

Frithir commented Jun 15, 2016

Sweet, thanks for that :)

@JetLewis
Copy link

JetLewis commented Dec 13, 2017

ryan-noakes answer won't work, you have to replace the spaces by + signs like a google map url would do :

https://www.google.com/maps/place/<?php echo str_replace(' ','+',$location['address']); ?>"

It works everytime for me and is smaller in code than the first answer.

@querysol
Copy link

Added urlencode:
$map_link = 'https://www.google.com/maps/place/' . urlencode( str_replace( ' ', '+' , $map['address'] ) );

@mitchbudreski
Copy link

this just saved me a lot of work thank you

Copy link

ghost commented Feb 22, 2019

Really thanks, but i change

$map_link = 'https://www.google.com/maps/place/' . urlencode( str_replace( ' ', '+' , $map['address'] ) );
by :
$map_link = 'https://www.google.com/maps/place/' . urlencode( str_replace( '% ', ' ' , $map['address'] ) );
it's little but its work better :)

@Applelo
Copy link

Applelo commented Jul 4, 2019

$map_link = 'https://www.google.com/maps/search/?api=1&query=' . urlencode( str_replace( '% ', ' ' , $map['address'] ) );
Check the https://developers.google.com/maps/documentation/urls/guide

@vnscorpion
Copy link

vnscorpion commented Aug 3, 2019

I use this:
$map_link = 'https://www.google.com/maps/dir/?api=1&destination=' . $location['lat'] .','. $location['lng'];
<a class="directions" href="'. $map_link .'" target="_blank">Chỉ đường</a>

@trungnl-git
Copy link

Is there anybody who got it worked? The one JetLewis provided don't work for me, it brings me just to Google Maps without any data from the ACF field

@Picpool
Copy link

Picpool commented Mar 16, 2022

it does not work for me...It send to the page with adress but the map is not centered and there is no marker

@mattradford
Copy link
Author

@Picpool The Maps API has changed a bit since 2015. I've updated the gist.

@itadakimasu9
Copy link

To create a link pointing directly to the location in Google Maps

<?php
$location = get_field('luogo_evento');
if (!empty($location)) {
   $street = $location['street_name'] . ' ' . $location['street_number'];
   $city = $location['city'];
   $address = urlencode("{$street}, {$city}");
   $lat = $location['lat'];
   $lng = $location['lng'];
   $map_link = "https://www.google.com/maps/search/?api=1&query=$address";
   echo '<a class="directions" href="' . $map_link . '" target="_blank">' . $street . ' - ' . $city . '</a>';
}
?>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment