Simple Location


Supports adding geo coordinates or textual description to a post, comment, user, or attachment. Supports adding weather data to a post or to a widget based on location.
Offers choice of map displays. It supports retrieving location using the HTML5 geolocation API by default. Clicking the location icon or ‚Lookup Location‘ will retrieve the location.

As it stores the GeoData in a WordPress standard format, Geodata can also be added from other plugins.

Automatically saves location data from image metadata when uploaded as well.

Offers the opportunity to change the displayed timezone on a per-post basis for those posts from far off locations and set this based on the coordinates of the location.
While Gutenberg compatible, this is not built for Gutenberg.

  • If your site is set to a Manual UTC Offset as opposed to a named timezone, the timezone override feature will not work at this time

Privacy and Data Notice

Simple Location stores location and weather data inside posts, attachments, comments, and term meta…optionally other post types. This data respects a public, private or
protected setting. Attachment data is automatically extracted from images if location is present, which could be extracted by any third-party downloading the picture
unless removed. For all other data, it is provided by the user, who decides its ultimate use. Location data is made available through a geolocation provider…currently
only HTML5 browser geolocation is built in, for which the user must give consent to share). Other information is secured through use of third-party APIs to identify a
location, calculate elevation, display maps, and weather conditions.


Zones allow for geofencing. You can set coordinates and a radius around them. If you set location to a place within a zone, the default behavior is to replace the location
with a preset Name and hide the coordinates. This allows you to protect private locations such as your home, or your place of business. For Micropub, it will set the location
as protected if the location is in the zone and the location-visibility property is not set. For the post editor in WordPress, looking up the location of an item inside the
zone will result in the visibility being set to protected and the name being set to the zone name. This can be overridden.


Venues are locations stored as a custom taxonomy in WordPress using the Term Metadata functionality added in Version 4.4 of WordPress. Venues as taxonomies
have the advantage of supporting an archive page of all posts from that location and giving the location a permalink on your site.

To add anything more than a basic location you will have to create a venue. This functionality is still pending.

WordPress GeoData

WordPress Geodata is an existing standardized way to store geodata about a post, user, comment, or term.

It consists of four fields: latitude, longitude, public, and address. This matches up with the HTML5 Geolocation fields. The W3C Geolocation Specification
also provides for properties of altitude, accuracy, altitudeAccuracy, speed, and heading, which may be stored. Map Zoom is also stored as a geodata property.

Timezone is also stored as a property and is derived from the location.


Weather consists of at minimum the current conditions and temperature but may include future parameters for use such as pressure, wind speed, wind direction degree, etc. A weather widget
is available that can be set to a specific location, a user, or a station ID.

Station ID is available from supported providers for weather stations, for example from a Personal Weather Station(PWS).


The plugin is designed to be extensible and anyone could write a plugin that would add additional providers.

  • Map Providers include Wikimedia, MapBox, Google, Mapquest’s Open Static Map, HERE, and Bing
  • Geocoding Providers include the Mapquest hosted version of Nominatim, Google, and Bing.
  • Location Providers offers HTML5 Browser Geolocation, a Provider that takes the location setting out of the author profile, and Compass, a self-hosted
    option for storing your location.
  • Weather Providers include OpenWeatherMap, Dark Sky, APIXU and the US National Weather Service. Dark Sky and APIXU do not support stations.


What are the requirements to use this plugin?

API Keys are required to use certain services.
* Google Static Maps
* Mapbox Static Maps – To retrieve style list inside the UI, you need a token with the styles:list scope
* Bing Maps
* OpenWeatherMap
* MapQuest
* Dark Sky
* Compass

At this time, the only map service available without an API key is Wikimedia maps
If not provided there will be no map displayed regardless of setting, reverse geo lookup will not work
Without a weather provider this service will not work.

API Keys may have free limits, or may incur fees if overused. This plugin only uses a request when you post, which is usually well within the free tier which is usually thousands of requests.

The appropriate API keys should be entered in Settings->Simple Location or will move to Indieweb->Location if the Indieweb plugin if installed.

Is this compatible with the WordPress mobile apps?

Simple Location uses WordPress Geodata to store location, as does the WordPress app. So setting location with the app should allow it to be displayed by Simple Location. The only major difference
is that whether or not a location is public is set with either 0 for private or 1 for public. The spec implemented states a non-zero number is considered public. This plugin adds the option of 2,
also known as protected, which shows a textual description of the location but does not display a map or geographic coordinates.

The Location Icon does not retrieve my location.

Chrome Users: Retrieves the location using the HTML5 geolocation API(available in your browser) will not work on Chrome if your website is not secure(https). This is a Chrome decision to ensure safe control of personal data.

You can take advantage of the other built-in location provider which uses the location of the user or create your own location provider as a separate plugin.

How can I update the location of my user profile?

You can do so under your user profile or alternatively update using a REST API endpoint. By posting to /wp-json/sloc_geo/1.0/user with the latitude, longitude, altitude parameters will
update the user associated with the credentials you provide to the REST API.

How can I access the location or weather data on the frontend?

There are REST API endpoints to retrieve the data so it can be used in the admin under the namespace /wp-json/sloc_geo/1.0:
* /timezone which will return timezone data for a latitude/longitude or airport code
* /weather which will return the weather for a latitude/longitude or station ID
* /geocode which will return the address information for a latitude/longitude and optionally add the weather
* /lookup which will return the current location for a user based on the location provider
* /map which will return static map data for the provided latitude and longitude

What is Compass?

Compass is a GPS tracking server that stores data in flat files. The instructions for installation are available in the GitHub repository. GPS
data can be sent to it from iOS or Android devices using various apps.

How can I show a list of posts tagged with a location?

You can filter any query or archive by adding ?geo={all|public|text} to it to show only public posts with location. Adding /geo/all to the homepage or archive pages should also work

JetPack offers Location Display, why do I need this?

JetPack only began offering location display in 2017, 3 years after this plugin was created. This plugin disables their implementation as it created conflicts.

They do not offer the features this plugin does and their goal is a minimal implementation.

Why am I seeing location on private posts with the notation Private?

This appears to users who can publish posts when logged in.

How can I report issues or request support?

The Development Version as well as support can be found on Github.

How can I add support for ___ ?

Simple Location has the concept of Providers. Providers are an abstract class that you can implement to take information from one format into the one Simple Location understands.
The plugin offers providers for:
* Geolocation – Looking up an address from coordinates or vice versa
* Location – By default this uses your browser to lookup your location but you can alternatively tap into a service to get your current location, perhaps from your phone
* Weather – Retrieves weather based on location or station ID
* Map – Provides maps for display


Januar 24, 2018
Thank you! Only took minutes to setup and do what it says and what i need. However i would like to change the way You can filter any query or archive by adding ?geo={all|public|text} to it to show only public posts with location. Adding /geo/all to the homepage or archive pages should also work. Instead a list of posts, a map with all the markers that link to the post would be so cool!
September 12, 2016
There are so many geotagging plugins on WordPress, but they don't support WordPress official geodata formats like geo_latitude, geo_longitude and geo_public. They use their own custom fields, and it makes compatible problems. I've spent so much time to arrive at this plugin. This plugin is currently the only plugin that supports the Wordpres geotag metadata that is used in mobile WordPress apps like Android and iOS.
Lies alle 4 Rezensionen

Mitwirkende & Entwickler

„Simple Location“ ist Open-Source-Software. Folgende Menschen haben an diesem Plugin mitgewirkt:


Übersetze „Simple Location“ in deine Sprache.

Interessiert an der Entwicklung?

Durchstöbere den Code, sieh dir das SVN Repository an oder abonniere das Entwicklungsprotokoll per RSS.


= 3.8.1 ( 2019-06-16 )
* Fix issue where hidden location showed in RSS feed
* Automatically lookup location for uploaded photos
* Automatically convert timestamp on photo to published property

= 3.8.0 ( 2019-05-26 )
* Add Geonames as a Provider
* Fix issue with auto-location on micropub

= 3.7.2 ( 2019-05-17 )
* Additional style fixes
* Add option to show maps on archive and home pages not just single

= 3.7.1 ( 2019-05-12 )
* Fix reported issue with icons being oversized when loaded without style sheet
* Redid weather and location microformats markup. Temperature now marked up as h-measure and location as h-adr
* Update formatting in widgets to not include microformats

= 3.7.0 ( 2019-04-13 )
* Do not return maps if location is protected
* Set Micropub posts with location to public visibility
* Do not save raw weather data on Micropub
* Enhance post filter to include all visibilities
* Add location visibility column to posts
* Fix storage of timezone on Micropub entries
* Update airport data
* Add bulk edit post location visibility
* Automatically add private location on Micropub post
* Clean up data on loading settings page

= 3.6.4 ( 2019-04-01 )
* Fix/update default map styles for Mapbox
* Add default map style now available for Bing

= 3.6.3 ( 2019-03-31 )
* Add Compass as a location provider
* Add APIXU as a weather provider

3.6.2 ( 2019-02-25 )

  • Fix timezone data conversion when get_the_date is called with a $post object
  • Fix micropub timezone storage to store name of timezone over entire timezone object which messed up display
  • Fix issue with default geographic options

3.6.1 ( 2019-02-23 )

  • Missing commit

3.6.0 ( 2019-02-23 )

  • Round altitude to nearest even number for display
  • Minor bug fixes for PHP notices
  • Add Wikimedia maps as a map provider. Link to their map site do not quite work but the static maps could be cached in future
  • Add setting to display altitude only if above a certain number of meters
  • Add zones to encourage privacy
  • Visibility returned in geo query if in zone

3.5.3 ( 2019-01-04 )

  • Fix bug in timezone scope causing Micropub to fail
  • Fix sunset darksky error ( props @xavierroy )
  • Rename Private to Hidden for logged in users to indicate location isn’t shown if not logged in
  • Show map on load not just on lookup
  • Fix map zoom setting
  • Fix properties not showing when post displayed in editor
  • When HTML5 geolocation provider is set the rest endpoint will use the user location is queried as you cannot use a browser option outside of the browser

3.5.2 ( 2018-12-22 )

  • Fix visibility issue finally
  • Fix widget title issues
  • Style changes/fixes( thanks @asuh)
  • Add location provider that always returns the location in the author user profile
  • Add endpoint to update the user location
  • Show private or protected location if logged in as user who can publish posts with the notation private

3.5.1 ( 2018-12-19 )

  • Did not merge in fix before pushing

3.5.0 ( 2018-12-19 )

  • Another attempt to fix the setting of private location by adding testing
  • Enhance rest integration
  • Add timezone endpoint
  • Add geocode endpoint to replace reverse endpoint
  • Add airport lookup using method used by @aaronpk
  • Rename metric to SI to be more accurate as multiple measurements not just temperature
  • Store measurements in SI(meters, celsius, etc) and allow for change to imperial on the fly
  • Store additional weather parameters
  • Add sunrise and sunset parameters
  • Split Weather Station into a Separate Widget
  • Remove Station ID API settings in favor of widget
  • Add support for the US National Weather Service as a weather provider. It finds the nearest weather station and reports current conditions
  • Update Micropub return to add weather even if there is not a location lookup occurring
  • Add Micropub query for location
  • Removal of hidden underused feature that set timezone based on browser settings
  • Fix of map endpoint and add map url to the reverse geocode endpoint as it is merely a URL
  • Map now displayed when location is looked up.
  • Plugin will now work with Gutenberg, though not strictly built for it.

3.4.1 ( 2018-11-02 )

  • Fix for displaying map when altitude but no location is set
  • Automatically update timezone based on location on Micropub posts

3.4.0 ( 2018-10-27 )

  • Fix for incorrect return when there is an error
  • Nominatim began to block reverse traffic so added additional options for reverse lookup.
  • Map Providers and Geo Providers are now separated
  • Unload Jetpack Geo Location which was added unknown to me in 2017. However added compatibility functions to ensure functionality matches
  • Declares post-type support for geo-location which is something the JetPack plugin does
  • Adds location meta tags
  • Add sanitize function that ensures geo_public is always saved as an integer
  • Empty address now causes plugin to display coordinates if not private
  • Provider registration now done by function as opposed to filter
  • Mapquests hosted version of Nominatim now offered but requires API Key
  • Mapquest Static Maps now a supported map provider
  • HERE Maps is now a supported map provider
  • Google is now a supported reverse lookup provider
  • Bing is now a supported reverse lookup provider
  • Elevation/altitude in meters is now calculated using an Elevation API when not supplied by the location provider
  • DarkSky is now a supported weather provider
  • Removal of the SLOC_PUBLIC constant in favor of this being stored in the options table
  • Default Location Visibility now allows all three options
  • Display altitude over 500m
  • Auto add weather and location textual description when coordinates are provided

3.3.8 ( 2018-05-27 )

  • Fix for jsonFeed error

3.3.7 ( 2018-05-14 )

  • Fix for jsonFeed privacy settings

3.3.6 ( 2018-05-12 )

  • Privacy and data collection statement
  • Add geoJSON to JSONFeed
  • Fix incorrect permissions for GEORSS

3.3.5 ( 2018-04-15 )

  • Minor location attachment storage changes

3.3.4 ( 2018-03-27 )

  • Fix issue when default is not set

3.3.3 ( 2018-03-26 )

  • Add markers to static map and map link for Mapbox
  • Clean up URL generation code for static maps
  • Update jstz dependency and set up scripted update for future
  • Remove hard-coded options for provider selection and make code more dynamic to allow third-party additions
  • Add support for alternative geolocation providers in the backend. Currently defaults to the HTML5 browser option in the frontend
  • Weather now supported for non-SSL sites

3.3.2 ( 2018-02-03 )

  • Simplify and refactor metadata saving functionality
  • Improvements to metaboxes ( props to @kingkool68 for contributions )
  • Refactored location JS
  • Add confirmation before clearing data
  • Added loading spinner while retrieving location information
  • Move location visibility and lookup to Publish Metabox
  • Rename visibility settings in an attempt at clarity
  • Auto-load weather when retrieving location
  • Add start of function to retrieve location optionally on backend
  • Icons change color when hovered over to indicate functionality

3.3.1 ( 2018-01-13 )

  • Add configuration setting for both imperial and metric temperatures. Defaults to metric unless locale is en_us.
  • Store units in each new post in case the setting is switched
  • Minor bug fixes
  • Check for existence of property before trying to display it

3.3.0 ( 2018-01-11 )

  • Introduce Weather Icons, licensed under SIL OFL 1.1
  • Add support for weather providers
  • Initial display for temperature
  • Add user profile settings for location
  • Add setting to set if user location is updated when a new post with location is published by that user
  • Add weather widget that can be set based on coordinates, user last reported location, or station ID
  • Allow filtering post admin and comment admin by location
  • Add last seen widget

3.2.4 ( 2017-12-09 )

  • Fix issue with rendering of timezone select when manual offset
  • Disable timezone override for now when manual offset is used as not a valid timezone string
  • Add p-location and change markup to accommodate
  • Update location icon
  • Add settings page and move settings out of media


  • Restore PHP 5.3 and 5.4 compatibility
  • Fix issues raised by automated testing
  • If you click the clock next to the word timezone it will set the timezone based on browser time


  • Allow setting timezone from Micropub posts(requires update to Micropub plugin)


  • Show settings for current default map provider only
  • Add style settings for each map provider ( props @miklb )


  • Allow passing of coordinates directly in constructor for map provider
  • Switch to argument array instead of individual properties for most display and data functions
  • Support per post zoom settings
  • Set initial map zoom based on geolocation accuracy
  • Quick and dirty Bing Maps support
  • Set location metadata for attachments if in EXIF data
  • Add location metabox to attachments
  • Add arguments for marking up location
  • Add GEORSS support from defunct project


  • New release with more functionality coming soon
  • get_geodata function now supports WP_Post, WP_Comment, and WP_Term objects
  • Fix registration of default settings
  • Add global setting for public or private by default
  • Switch from admin ajax to REST Route API for simple endpoints
  • Add map endpoint to retrieve a URL for a map based on coordinates
  • Add reverse endpoint to retrieve an address object based on coordinates
  • Allow arguments to be passed to map provider
  • Remove popup location metabox and replace with slidedown metabox
  • Combine geolocation and reverse lookup buttons
  • Set public/private to system default if post is published outside of Post UI


  • Fix Activation Issue


  • Add support for queries and permalinks to show location enabled posts
  • Use built-in WP timezone list generation code
  • Fix error with private setting
  • Put in check for improperly timezone setting to avoid exception error


  • Continuing to iterate based on initial feedback to 3.0.0
  • Timezone box now hidden until checked
  • Timezone now stored in geo_timezone in interest of consistency
  • Icon Size for some fixed
  • Priority of location and map box increased
  • Text added to Location box to explain how to complete
  • Constant SLOC_PUBLIC and filter geo_public_default allow the default to be changed from public(1) to private(0) if no geo_public is set
  • Display Address generation tweaks
  • Display now shows all HTML5 geolocation API stats.


  • Some quick fixes on the release. Due to issues with the removal of the old location data, it will no longer be removed. Instead only the extra display metadata will be removed.
  • If there is no geo_address set and there are coordinates a geo_address will be automatically set along with timezone


  • New Version Takes Advantage of new WordPress Term Metadata to create Venues (Feature disabled until future release)
  • The most Javascript I’ve ever used in a WordPress plugin. Retrieving location information is now done without page refresh.
  • Timezone Override is set by location lookup.
  • Google Map Services will now require an API key to be provided.
  • MapBox is now the static map provider if you are using OSM maps and an API key must be provided
  • You Can Now Choose Map Providers but not reverse lookup providers which may come in future
  • Full Address data is no longer stored in the post. You will have the choice of either a textual description and coordinates in the post
    or assigning a venue which can have full data. Venue support in future version and is disabled here.
  • Warnings no longer showing in debug logs.
  • Displayed name and timezone are now set if Micropub plugin provides geo coordinates


  • Revamp in Text Display Parameters, now offering three levels of Detail
  • Coordinates will now display and Location will link to map if set for full address


  • Google Static Maps now link to Google Maps
  • Nominatim now defaultly tries to retrieve in the language of the blog


  • Fixed formatting on timezone feature as it was not displaying the proper date formatting and falling back to default


  • Option to override the displayed timezone on a per post basis for posts made at a location other than the default


  • Complete Rewrite with improved scoping
  • Google Maps is now a provider of static maps
  • Maps providers are built with a common interface to allow multiple providers


  • Some refinements to the presentation


  • Initial Release