Leaflet Map


Add a map generated with LeafletJS: an open-source JavaScript library for mobile-friendly interactive maps. Map tiles are provided by default through OpenStreetMap, or MapQuest (with an app key). Can be set per map with shortcode attributes or through the dashboard settings.


Height, width, latitude, longitude and zoom are the basic attributes:

[leaflet-map height=250 width=250 lat=44.67 lng=-63.61 zoom=5]

However, you can also just give it an address, and Google (by default) will look it up for you:

[leaflet-map address="Oslo, Norway"]

The default URL requires attribution by its terms of use. If you want to change the URL, you may define a new attribution, or remove the attribution. You can define this site-wide in the admin, or you can set this per map in the shortcode (0 for disabled):

[leaflet-map attribution=0]


[leaflet-map attribution="Copyright @bozdoz"]

Look at other examples on the Shortcode Helper in the Leaflet Map admin section.


Add a marker to any map by adding [leaflet-marker] after any [leaflet-map] shortcode. You can adjust the lat/lng in the same way, as well as some other basic functionality (popup message, draggable, visible on load). Also, if you want to add a link to a marker popup, use this syntax: [leaflet-marker]Message here: click here[/leaflet-marker] and add a link like you normally would with the WordPress editor.

Lines and other Shapes

Add a line to the map by adding [leaflet-line]. You can specify the postions with a list separated by semi-colon ; or bar | using lat/lng: [leaflet-line latlngs="41, 29; 44, 18"] or addresses: [leaflet-line addresses="Istanbul; Sarajevo"], or x/y coordinates for image maps.

Add a circle to the map by adding [leaflet-circle]. You can specify the position using lat and lng and the radius in meters using radius. You can also customize the style using Leaflet’s Path options. Example: [leaflet-circle message="max distance" lng=5.117909610271454 lat=52.097914814706094 radius=17500 color="#0DC143" fillOpacity=0.1].

Or you can add a geojson shape via a url (work in progress): [leaflet-geojson src="https://example.com/path/to.geojson"]

Image Maps

Alternatively, you could use a plain image for visitors to zoom and pan around with [leaflet-image src="path/to/image/file.jpg"]. See screenshots 3 – 5 for help setting that up.

Check out the source code on GitHub!

Shoot me a question @bozdoz.


  • Put the shortcode into the post.
  • See the shortcode play out on the front end.
  • For [leaflet-image] upload an image, and copy the URL from the right-hand side
  • For [leaflet-image] paste that image URL into an attribute titled source: example: src="https://picsum.photos/1000/1000/".
  • See the [leaflet-image] on the front end.
  • If you use [leaflet-marker draggable], then you can drag the marker where you want it, open a developers console, and see the specific shortcode to use.
  • Add geojson via URL: [leaflet-geojson src="https://example.com/path/to.geojson"]
  • MapQuest requires an app key, get it from their website; alternatively, you can use OpenStreetMap as a free tile service (remember to add an attribution where necessary).


  1. Choose to add a new plugin, then click upload
  2. Upload the leaflet-map zip
  3. WordPress の「プラグイン」メニューからプラグインを有効化してください
  4. Use the shortcodes in your pages or posts: e.g. [leaflet-map] and [leaflet-marker]


Can I have an SVG Marker?

Yes! Convert the default marker into an svg with a shortcode like this: [leaflet-marker svg color="white" iconClass="fab fa-wordpress-simple" background="red"] The iconClass is perfect for adding a font-awesome icon.

How do I change the style for lines/geojson?

Pass the style attributes to the respective shortcodes (see all options on LeafletJS):

[leaflet-line color="red" weight=10 dasharray="2,15" addresses="Halifax, NS; Tanzania" classname=marching-ants]
My map now says direct tile access has been discontinued (July 11, 2016); can you fix it?

Yes. Update to the newest plugin version, and reset defaults in settings. You can choose to use MapQuest by signing up and supplying an app key, or use the default OpenStreetMap tiles (with attribution). See Screenshot 8.

Can I add geojson?

Yes, just give it a source URL: [leaflet-geojson src="https://example.com/path/to.geojson"] It will also support leaflet geojson styles or geojson.io styles. Add a popup message with [leaflet-geojson popup_text="hello!"], or add HTML by adding it to the content of the shortcode: [leaflet-geojson]<a href="#">Link here, or use text from a feature property, like {title}</a>[/leaflet-geojson] or identify a geojson property with popup_property, and each shape will use its own popup text if available.

Can I add kml/gpx?

Sure!? Use the same attributes as leaflet-geojson (above), but use the [leaflet-kml] or [leaflet-gpx] shortcode.

Can I add a message to a marker?

Yes: [leaflet-marker message="Hello there!" visible], where visible designates if it is visible on page load. Otherwise it is only visible when clicked.

Can I use your plugin with a picture instead of a map?

Yes: Use [leaflet-image src="path/to/image/file.jpg"]. See screenshots 3 – 5 for help setting that up.

Can I use my own self-hosted Leaflet files?

Yes: It’s been added to the dashboard options!

How can I add a link to a marker?

Use the marker format [leaflet-marker]Click here![/leaflet-marker] and add a hyperlink like you normally would with the WordPress editor.

Can I add a line to the map?

Use the line format [leaflet-line] with attributes latlngs or addresses separated by semi-colons to draw a line: [leaflet-line addresses="Sayulita; Puerto Vallarta"].

Can I add my own attributions to custom tile layers?

Yes: use the keyword attribution in your shortcode (semi-colon separated list of attributions): [leaflet-map attribution="Tiles courtesy of MapBox; Locations contributed by viewers"]



I had been using Leaflet Maps Marker for years, but had I known this plugin was out there I would’ve switched long ago. Thumbs up!

Best Map Plugin of 2018

Create custom maps that link to your posts!

I spent a rainy Sunday morning testing out all the WordPress mapping plugins and found this to be both the most versatile and the easiest to use. This is the only plugin I found that is actually free. Many of the other “free” plugins put most of the features in a pro version. Even worse, many require you to set up a google API key attached to your credit card (so who really knows how much you’ll pay for that one). I also discovered that many of the fully-featured plugins have a complicated interface.

Nice plugin

I like it, but configuration was unclear for me, that’s why 4 stars.

Excellent !

This is the best plugin for maps ! No API, free, simple to use ! I love it !

Thank you so much for having made this available to us !

MERCI Benjamin DeLong !



Leaflet Map はオープンソースソフトウェアです。以下の人々がこのプラグインに貢献しています。


“Leaflet Map” は2ロケールに翻訳されています。 翻訳者のみなさん、翻訳へのご協力ありがとうございます。

“Leaflet Map” をあなたの言語に翻訳しましょう。

開発に興味がありますか ?

コードを閲覧するか、SVN リポジトリをチェックするか、開発ログRSS で購読してみてください。



  • Added assumed-boolean attributes to all shortcodes; ex: [leaflet-marker draggable svg] would be the same as [leaflet-marker draggable=1 svg=1]


  • Fix to a race condition issue with custom scripts changing leaflet rendering methods


  • Fix to an issue with rendering circles


  • Allow scripts to be deferred, and still render maps reliably
  • Add a circle to the map by adding [leaflet-circle]


  • Added Dockerfiles to github
  • Made OpenStreetMap default geocoder in light of new Google API payment plans


  • Added Popup Anchor for custom markers
  • Added SVG Markers
  • Added actions and filters


  • Fix for plugin settings not being included (somehow)


  • Added functions for translating text
  • Added string interpolation for GeoJSON popups to use feature properties (thanks to @geraldo)


  • Fixes for PHP 7.2: made all method arguments identical
  • Added minified JavaScript files for site speed


  • Added [leaflet-gpx] for GPX format


  • Fix image shortcode ratio


  • Added missing files from 2.8.4


  • Fixed issues with css and js CDN; removed version from querystring
  • Split admin into new class


  • Fix to [leaflet-kml]
  • Standardized src in leaflet-image and leaflet-geojson/kml


  • Fix to image maps
  • Fixes to geocoder
  • Added multi-line popups to markers and geojson/kml


  • Code cleanup
  • Added server-side and client-side methods to prevent WordPress from adding paragraph tags within shortcode tags


  • Added Fit Markers to settings and map shortcode: [leaflet-map fit_markers=1]
  • Moved geojson/kml popup text to the shortcode content instead of a property so that you can use links or other HTML


  • update default Leaflet version (1.1.0 from 1.0.3)


  • added default lat/lngs in the admin; and reordered admin fields to be more user friendly


  • added optional cURL to get geolocations if file_get_contents is not allowed on a server (note: cURL needs to be enabled, obviously)


  • fixed filter_var_array throwing errors in old PHP too


  • Added settings link to plugins page


  • Fix to array_filter on some PHP versions.


  • Fix to possible JavaScript error “Unexpected token <“; only happened when a plugin/theme used wpautop; fix was to remove spaces.


  • Removed unnecessary map counts;


  • Added basic marker icon support (with attributes “iconUrl”, “iconAnchor”, etc.);


  • Changes to map creation which may solve an occasional marker creation JavaScript error
  • Added more attributes to marker shortcode (draggable, title, alt, opacity)
  • Added doubleClickZoom global, database option to globally disable double click zooming (by default), because it’s more inline with disabling scroll zooming by default. Box zooming on the other hand is more intentional


  • Some improvements to the codebase;
  • added the same styling options for lines as there are for geojson;
  • added popups to lines, as there are for markers;
  • added an example to the shortcode admin page for the style attributes on lines;
  • added code and another example for disabling all map interactions (all zooms, keyboard, etc);


  • Added Leaflet 1.0.2 scripts by default (works!);


  • Added KML support [leaflet-kml];


  • Added popup_text and popup_property to leaflet-geojson to bind popups via a shortcode property or geojson properties


  • Added Leaflet and GeoJSON.io styles to geojson shortcode


  • OpenStreetMap.org has an SSL certificate (osm.org didn’t); not a significant upgrade.


  • Changed ajax request to be compatible with some versions of IE.


  • Needed to add support for a MapQuest app key, since they discontinued the direct access of their tiles on July 11, 2016; added an alternate OpenStreetMap tile URL as the new default. Remember to reset options to default values!


  • Added bare geojson support


  • Removed shortcode brackets from leaflet-marker shortcode


  • Fixed slashes in optional map attribution



  • Added htmlspecialchars in admin.php, and custom attributions. Bugfix : removed position in admin menu so it doesn’t overwrite or be overwritten (thanks to @ziodave)


  • Added HTTPS support.


  • Added lines to the map, thanks to @Remigr!


  • Added ability to use hyperlinks in marker messages.


  • Added ability to self-host leaflet files.


  • Uploaded 1.6 to subversion incorrectly!


  • Important fix to conflicts with other plugins!


  • Some helpful js fixes for multiple window onload functions, and added the leaflet-image shortcode!


  • Some fixes for Google geocoding, and switched cookies to db options.


  • Added cookies for Google geocoding to cut back on requests.


  • Added geocoding to map: [leaflet-map address="halifax, ns"].


  • Added messages to markers.


  • First Version. Basic map creation and marker creation.