{"id":332242,"date":"2026-07-17T12:35:49","date_gmt":"2026-07-17T12:35:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/partner-map-locator\/"},"modified":"2026-07-17T12:35:21","modified_gmt":"2026-07-17T12:35:21","slug":"partner-map-locator","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/partner-map-locator\/","author":23303522,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.2","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Partner Map Locator","header_author":"Tobias Kurth","header_description":"Display partners, retailers, locations or company branches on a responsive interactive map.","assets_banners_color":"ffa533","last_updated":"2026-07-17 12:35:21","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/partner-map-locator\/","header_author_uri":"https:\/\/desk9.design\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":36,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"desk9","date":"2026-07-17 12:35:21"}},"upgrade_notice":{"1.0.0":"<p>First public release.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3611483,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3611483,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3611483,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3611483,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3611483,"resolution":"1","location":"assets","locale":"","width":1280,"height":800},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3611483,"resolution":"10","location":"assets","locale":"","width":1280,"height":800},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3611483,"resolution":"11","location":"assets","locale":"","width":1280,"height":800},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3611483,"resolution":"12","location":"assets","locale":"","width":1280,"height":800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3611483,"resolution":"2","location":"assets","locale":"","width":1280,"height":800},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3611483,"resolution":"3","location":"assets","locale":"","width":1280,"height":800},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3611483,"resolution":"4","location":"assets","locale":"","width":1280,"height":800},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3611483,"resolution":"5","location":"assets","locale":"","width":1280,"height":800},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3611483,"resolution":"6","location":"assets","locale":"","width":1280,"height":800},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3611483,"resolution":"7","location":"assets","locale":"","width":1280,"height":800},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3611483,"resolution":"8","location":"assets","locale":"","width":1280,"height":800},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3611483,"resolution":"9","location":"assets","locale":"","width":1280,"height":800}},"screenshots":{"1":"The frontend map with markers and an accessible list of locations.","2":"The location editor with address, coordinates and contact details.","3":"Plugin settings: map defaults, designs and optional features.","4":"Tools page with CSV import \/ export and migration assistant."}},"plugin_section":[],"plugin_tags":[1571,351,2909,16164,6102],"plugin_category":[49],"plugin_contributors":[244725],"plugin_business_model":[],"class_list":["post-332242","plugin","type-plugin","status-publish","hentry","plugin_tags-google-maps","plugin_tags-locations","plugin_tags-map","plugin_tags-openstreetmap","plugin_tags-store-locator","plugin_category-maps-and-location","plugin_contributors-desk9","plugin_committers-desk9"],"banners":{"banner":"https:\/\/ps.w.org\/partner-map-locator\/assets\/banner-772x250.png?rev=3611483","banner_2x":"https:\/\/ps.w.org\/partner-map-locator\/assets\/banner-1544x500.png?rev=3611483","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/partner-map-locator\/assets\/icon-256x256.png?rev=3611483","icon_2x":"https:\/\/ps.w.org\/partner-map-locator\/assets\/icon-256x256.png?rev=3611483","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/partner-map-locator\/assets\/screenshot-1.png?rev=3611483","caption":"The frontend map with markers and an accessible list of locations."},{"src":"https:\/\/ps.w.org\/partner-map-locator\/assets\/screenshot-2.png?rev=3611483","caption":"The location editor with address, coordinates and contact details."},{"src":"https:\/\/ps.w.org\/partner-map-locator\/assets\/screenshot-3.png?rev=3611483","caption":"Plugin settings: map defaults, designs and optional features."},{"src":"https:\/\/ps.w.org\/partner-map-locator\/assets\/screenshot-4.png?rev=3611483","caption":"Tools page with CSV import \/ export and migration assistant."},{"src":"https:\/\/ps.w.org\/partner-map-locator\/assets\/screenshot-5.png?rev=3611483","caption":""},{"src":"https:\/\/ps.w.org\/partner-map-locator\/assets\/screenshot-6.png?rev=3611483","caption":""},{"src":"https:\/\/ps.w.org\/partner-map-locator\/assets\/screenshot-7.png?rev=3611483","caption":""},{"src":"https:\/\/ps.w.org\/partner-map-locator\/assets\/screenshot-8.png?rev=3611483","caption":""},{"src":"https:\/\/ps.w.org\/partner-map-locator\/assets\/screenshot-9.png?rev=3611483","caption":""},{"src":"https:\/\/ps.w.org\/partner-map-locator\/assets\/screenshot-10.png?rev=3611483","caption":""},{"src":"https:\/\/ps.w.org\/partner-map-locator\/assets\/screenshot-11.png?rev=3611483","caption":""},{"src":"https:\/\/ps.w.org\/partner-map-locator\/assets\/screenshot-12.png?rev=3611483","caption":""}],"raw_content":"<!--section=description-->\n<p>Partner Map Locator is a lightweight WordPress plugin for showing your partner network, dealers, retail stores or company branches on a responsive interactive map. Locations are managed as a custom post type so they sit alongside the rest of your WordPress content.<\/p>\n\n<p><strong>Using the settings:<\/strong> you pick <strong>one map type for the whole site<\/strong> (Google Maps, OpenStreetMap or list-only). That controls which scripts load. You can still hide the map on a <strong>single<\/strong> page with the shortcode or block list-only option. Under <strong>List &amp; map visibility<\/strong>, <em>Description<\/em> has <strong>separate<\/strong> checkboxes for the list and the popup. Under <strong>Features<\/strong>, <strong>List card description (max. characters)<\/strong> controls list excerpts (with optional \u201cRead more\u201d); map popups always show the <strong>full<\/strong> description. Under <strong>Map defaults<\/strong>, <strong>Map popup width<\/strong> sets how wide the location card is on the map.<\/p>\n\n<p>Choose Google Maps as the map type and enter your Google Maps JavaScript API key, pick OpenStreetMap for a keyless map rendered with the bundled Leaflet library, or use the list-only mode for a map-free, filterable location list.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Custom post type \"Locations\" with proper capabilities and admin UI<\/li>\n<li>Optional category taxonomy to group locations (regions, types, brands, ...)<\/li>\n<li><code>[partner_map_locator]<\/code> shortcode with optional category, height, zoom, coordinates, layout, design and map attributes<\/li>\n<li>Multiple maps on the same page are fully supported<\/li>\n<li>Accessible list rendering of all locations alongside the map<\/li>\n<li>Optional \"Show my location\" button (browser geolocation, off by default)<\/li>\n<li>Optional admin geocoder using the Google Geocoding API (off by default, with a clear opt-in toggle)<\/li>\n<li>Server-side cache so the location query only runs once per data change<\/li>\n<li>CSV import \/ export and a one-click import tool for locations from a previous installation<\/li>\n<li>Translation ready (text domain <code>partner-map-locator<\/code>)<\/li>\n<li>Map provider of your choice: Google Maps (incl. optional Map ID \/ Advanced Markers) or OpenStreetMap (bundled Leaflet, no account or API key needed)<\/li>\n<li>Four ready-made designs (Classic, Tab view, Mixed view, Stack view) plus per-page design\/layout via shortcode or block<\/li>\n<li>Geolocation with radius search and \"near me\" out of the box<\/li>\n<li>Schema.org LocalBusiness markup and WPML\/Polylang compatibility<\/li>\n<li>No statistics or marketing scripts are bundled; outbound traffic is limited to the selected map service and, if you turn it on, the optional geocoder<\/li>\n<\/ul>\n\n<h4>Privacy<\/h4>\n\n<p>The plugin does not load advertising or visitor-profiling scripts. By default the map type is set to \"List only\", so no external map service is contacted until the site owner opts in by choosing a map provider under Settings \u2192 Map. With the Google Maps provider, the visitor's browser loads the Google Maps JavaScript API and tiles from Google, which may transmit data such as the visitor's IP address to Google. With the OpenStreetMap provider, the Leaflet library is bundled and served from your own site; only the map tiles are loaded from the configured tile server \u2014 openstreetmap.org by default, or Carto (carto.com) when one of the Light \/ Dark \/ More-colors map color schemes is selected \u2014 which transmits the visitor's IP address to that tile provider. Use the built-in consent gate (Settings \u2192 Integration) if you need visitor consent before the map loads; it covers both providers. The browser geolocation feature, when enabled, only triggers after the visitor clicks the dedicated button and is handled entirely client-side by the browser. The optional admin geocoder, when enabled, sends address data server-side from your site to the Google Geocoding API to retrieve coordinates.<\/p>\n\n<p>Web fonts are self-hosted by default \u2014 the optional Google fonts are bundled with the plugin and served from your own server, so no request is made to Google. Under Settings \u2192 Style \u2192 \"Web font loading\" an administrator may instead choose \"Load from Google\", which loads the selected font from <code>https:\/\/fonts.googleapis.com<\/code> and therefore sends the visitor's IP address to Google; this option is off by default.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin can connect to the third-party services listed below. Every one of them is optional and off by default: the plugin ships with the map type set to \"List only\", so a fresh install loads no map tiles and contacts no external service at all. A map (and its tile service) is only loaded after the site owner explicitly selects a provider under Settings \u2192 Map; the Google API features additionally require you to enable the matching option and enter your own API key. A built-in map consent gate (Settings \u2192 Integration) can require visitor consent before any tiles load.<\/p>\n\n<p><strong>OpenStreetMap tile server<\/strong> (tile.openstreetmap.org)\nActive only if the site owner selects \"OpenStreetMap\" as the map type (the plugin defaults to \"List only\", which loads no tiles). It is the keyless map option \u2014 no account or API key is required. When a visitor then opens a page that contains the map, their browser requests the map tile images from the OpenStreetMap tile server, which transmits the visitor's IP address (and the requested map area) to the OpenStreetMap Foundation. No other data is sent. You can avoid this by keeping the \"List only\" map type, or by enabling the built-in consent gate (Settings \u2192 Integration) so tiles load only after the visitor agrees.\nTile usage policy: https:\/\/operations.osmfoundation.org\/policies\/tiles\/ \u2014 Privacy: https:\/\/wiki.osmfoundation.org\/wiki\/Privacy_Policy<\/p>\n\n<p><strong>CARTO basemap tiles<\/strong> (basemaps.cartocdn.com)\nUsed only if you pick one of the \"Light\", \"Dark\" or \"More colors\" map color schemes while using the OpenStreetMap provider. The visitor's browser then loads the map tiles from CARTO instead of OpenStreetMap, which transmits the visitor's IP address (and the requested map area) to CARTO. The default \"Classic\" scheme uses OpenStreetMap tiles and does not contact CARTO.\nTerms: https:\/\/carto.com\/legal\/ \u2014 Privacy: https:\/\/carto.com\/privacy\/<\/p>\n\n<p><strong>Google Maps JavaScript API<\/strong> (maps.googleapis.com)\nUsed only if you set the map type to \"Google Maps\" (Settings \u2192 Map). When a visitor opens a page with the map, their browser loads the Google Maps script and map tiles using the API key you entered, which transmits data such as the visitor's IP address to Google. The same script is loaded in the location editor if you use the optional \"Import from Google Maps\" search.\nTerms: https:\/\/cloud.google.com\/maps-platform\/terms \u2014 Privacy: https:\/\/policies.google.com\/privacy<\/p>\n\n<p><strong>Google Places API<\/strong> (places.googleapis.com, maps.googleapis.com)\nUsed only if you enable Google ratings sync or use the Google business search \/ Maps-link import in the location editor, and have entered your own API key. The plugin sends the place ID or the search text \/ business name you provide (and never any visitor data) to retrieve business details such as name, address, phone, opening hours, rating and review count. Requests are made when you save a location, when you run a search or link import in the editor, or on the schedule you configure for ratings sync; depending on your key restrictions they run from your server or from your logged-in browser session in wp-admin. In addition, if you paste a shortened Google Maps share link (e.g. maps.app.goo.gl or goo.gl) into the \"Import from Google Maps link\" field, the plugin follows that link server-side to Google to resolve the full map URL before extracting the location data. All of this happens in wp-admin and only with links\/searches an administrator enters; no visitor data is involved.\nTerms: https:\/\/cloud.google.com\/maps-platform\/terms \u2014 Privacy: https:\/\/policies.google.com\/privacy<\/p>\n\n<p><strong>Google Geocoding API<\/strong> (maps.googleapis.com)\nUsed only if you enable the optional admin geocoder (Settings \u2192 General) and have entered an API key. When an administrator looks up coordinates while editing a location, the entered address is sent from your server to Google to obtain latitude\/longitude. No visitor data is sent.\nTerms: https:\/\/cloud.google.com\/maps-platform\/terms \u2014 Privacy: https:\/\/policies.google.com\/privacy<\/p>\n\n<p><strong>Google Fonts<\/strong> (fonts.googleapis.com, fonts.gstatic.com)\nWeb fonts are self-hosted by default and no request is made to Google. Only if you change \"Web font loading\" to \"Load from Google\" (Settings \u2192 Style) does the visitor's browser load the selected font's stylesheet and font files from Google, which transmits the visitor's IP address to Google.\nTerms: https:\/\/developers.google.com\/fonts\/faq \u2014 Privacy: https:\/\/policies.google.com\/privacy<\/p>\n\n<h3>Bundled libraries &amp; source code<\/h3>\n\n<p>The plugin bundles the following third-party libraries in their official minified distribution form. The human-readable, unminified source code is publicly available in the projects' repositories:<\/p>\n\n<ul>\n<li><strong>Leaflet 1.9.4<\/strong> (BSD-2-Clause) \u2014 <code>public\/js\/leaflet.js<\/code> \u2014 source: https:\/\/github.com\/Leaflet\/Leaflet<\/li>\n<li><strong>Leaflet.markercluster<\/strong> (MIT) \u2014 <code>public\/js\/leaflet.markercluster.js<\/code> \u2014 source: https:\/\/github.com\/Leaflet\/Leaflet.markercluster<\/li>\n<li><strong>Lucide icons<\/strong> (ISC) and <strong>Heroicons<\/strong> (MIT) \u2014 bundled as SVG data in <code>admin\/data\/icon-library.php<\/code> \u2014 sources: https:\/\/github.com\/lucide-icons\/lucide and https:\/\/github.com\/tailwindlabs\/heroicons<\/li>\n<\/ul>\n\n<p>The plugin's own minified assets (<code>*.min.js<\/code> \/ <code>*.min.css<\/code>) ship alongside their readable source files in the same directories.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>partner-map-locator<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen.<\/li>\n<li>Add a few locations under <strong>Partner Map &raquo; All Locations<\/strong>.<\/li>\n<li>Drop the shortcode on any page or post:\n   [partner_map_locator]<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20display%20only%20one%20category%3F\"><h3>How do I display only one category?<\/h3><\/dt>\n<dd><p>Use the <code>category<\/code> attribute with the slug of the term:\n    [partner_map_locator category=\"region-north\"]<\/p><\/dd>\n<dt id=\"can%20i%20display%20several%20maps%20on%20one%20page%3F\"><h3>Can I display several maps on one page?<\/h3><\/dt>\n<dd><p>Yes. Each shortcode renders its own map with a unique container id. They do not share state.<\/p><\/dd>\n<dt id=\"can%20i%20show%20a%20different%20design%20per%20page%3F\"><h3>Can I show a different design per page?<\/h3><\/dt>\n<dd><p>Yes. Add the <code>design<\/code> attribute to pick a design just for that map, independent of the global design under Partner Map \u2192 Settings:<\/p>\n\n<pre><code>[partner_map_locator design=\"classic\"]\n[partner_map_locator design=\"tab_view\"]\n<\/code><\/pre>\n\n<p>Valid values are <code>classic<\/code>, <code>tab_view<\/code>, <code>mixed_view<\/code> and <code>stack_view<\/code>. The design\u2019s own layout is applied automatically (you can still override it with an explicit <code>layout<\/code> attribute). This is ideal for a showcase page where each subpage demonstrates one design. Note: the design\u2019s <strong>layout, toolbar and styling classes<\/strong> switch per page, but the <strong>colour scheme and marker palette<\/strong> are emitted once site-wide, so all maps share the global colours configured under the Style tab.<\/p><\/dd>\n<dt id=\"where%20is%20the%20data%20stored%3F\"><h3>Where is the data stored?<\/h3><\/dt>\n<dd><p>Each location is a regular WordPress post in the <code>pmloc_location<\/code> custom post type with metadata (address, coordinates, contact details) stored as post meta with the <code>pmloc_<\/code> prefix.<\/p><\/dd>\n<dt id=\"does%20it%20work%20without%20internet%20access%3F\"><h3>Does it work without internet access?<\/h3><\/dt>\n<dd><p>The plugin's PHP and the Leaflet library are local, but the map imagery always loads from the selected provider (Google Maps, or the configured tile server for OpenStreetMap). If your visitors cannot reach that service the map area stays empty, but the marker list still renders.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20google%20account%3F\"><h3>Do I need a Google account?<\/h3><\/dt>\n<dd><p>Only for the Google Maps provider and the optional Google integrations (geocoder, ratings sync, business search, Maps-link import). Choose OpenStreetMap as the map type and the map renders with the bundled Leaflet library against openstreetmap.org tiles \u2014 no account, no API key.<\/p><\/dd>\n<dt id=\"how%20do%20i%20move%20data%20from%20another%20plugin%3F\"><h3>How do I move data from another plugin?<\/h3><\/dt>\n<dd><p>The Tools page (<strong>Partner Map &raquo; Tools<\/strong>) includes CSV import and export plus a one-click option to copy locations that still exist in the database from an older store-locator setup into Partner Map Locator.<\/p><\/dd>\n<dt id=\"can%20one%20page%20show%20only%20the%20list%20while%20another%20shows%20the%20map%3F\"><h3>Can one page show only the list while another shows the map?<\/h3><\/dt>\n<dd><p>Yes in two ways: (1) Set <strong>Map type<\/strong> to \u201cList only\u201d under Partner Map \u2192 Settings so the whole site has no map. (2) Keep your map provider globally and add <strong><code>map=\"list\"<\/code><\/strong> to the shortcode on specific pages, or choose <strong>List only (no map)<\/strong> under <strong>Map for this block<\/strong> in the block sidebar.<\/p><\/dd>\n<dt id=\"how%20do%20list%20vs.%20map%20popup%20description%20settings%20relate%3F\"><h3>How do list vs. map popup description settings relate?<\/h3><\/dt>\n<dd><p>Under <strong>List &amp; map visibility<\/strong>, the <strong>Description<\/strong> row has separate checkboxes for the list and the popup. Under <strong>Features<\/strong>, <strong>List card description (max. characters)<\/strong> sets list excerpts (optional \u201cRead more\u201d). When the popup shows the description, it always includes the <strong>full<\/strong> text (scrollable inside the card). Use <strong>Map popup width<\/strong> under <strong>Map defaults<\/strong> to change the card width.<\/p><\/dd>\n<dt id=\"which%20google%20api%20keys%20do%20i%20need%3F\"><h3>Which Google API keys do I need?<\/h3><\/dt>\n<dd><p>Two scenarios:<\/p>\n\n<ol>\n<li><p><strong>One key, browser-only (simplest)<\/strong> \u2014 store your Maps JavaScript API key under <strong>Google Maps API key<\/strong>. Leave the <strong>Google Places API key<\/strong> field empty. In Google Cloud Console: enable <strong>Maps JavaScript API<\/strong> <em>and<\/em> <strong>Places API (New)<\/strong> for that key, and under HTTP-referrer restrictions add your domain plus <code>\u2026\/wp-admin\/*<\/code> so the location editor can use it. The Maps-link import, search and Autocomplete all run in the browser; ratings sync (cron) is unavailable in this configuration.<\/p><\/li>\n<li><p><strong>Two keys (recommended for ratings sync)<\/strong> \u2014 keep the Maps key as in (1) for the browser, <em>and<\/em> add a second key with <strong>IP restriction<\/strong> (your server's IP) under <strong>Google Places API key<\/strong>. This second key powers server-side Place Details for the optional \u201cSync Google ratings\u201d cron job and the Maps-link import, and never sends a referrer.<\/p><\/li>\n<\/ol>\n\n<p>If you see \u201cAPI key restricted to websites \u2014 use a separate IP-restricted key\u201d, you are in scenario 1 and the message can be ignored \u2014 the browser flow handles everything except the cron sync.<\/p><\/dd>\n<dt id=\"can%20the%20importer%20read%20google%20business%20profile%20data%3F\"><h3>Can the importer read Google Business Profile data?<\/h3><\/dt>\n<dd><p>Yes. Both the \u201cImport from Google Maps link\u201d and the live search use the <strong>Places API (New)<\/strong>, which exposes the same data Google shows on Business Profiles: name, address, phone, website, opening hours, average rating and review count. Individual review texts and Q&amp;A are not exposed by the API. Pasting a <code>https:\/\/g.page\/\u2026<\/code> Business Profile share link or a <code>maps.app.goo.gl<\/code> link works the same as a regular Maps URL.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<li>Custom post type for locations with four taxonomies (categories, product types, partner levels, highlights), multi-select frontend filters and badge colors.<\/li>\n<li><code>[partner_map_locator]<\/code> shortcode and Gutenberg block with per-page design, layout, category, height, zoom and list options; multiple maps per page.<\/li>\n<li>Map providers: Google Maps (incl. optional Map ID \/ Advanced Markers) or OpenStreetMap (bundled Leaflet); list-only mode is the privacy-friendly default.<\/li>\n<li>Four ready-made designs: Classic, Tab view, Mixed view and Stack view.<\/li>\n<li>Geolocation with radius search and \"near me\", opening hours, Schema.org LocalBusiness markup, WPML\/Polylang support.<\/li>\n<li>CSV import \/ export, Google-Maps-link and business-search import in the location editor, optional admin geocoder, optional map consent gate.<\/li>\n<li>Optional scheduled Google ratings sync (star rating + review count via the Places API, with your own key).<\/li>\n<li>Server-side location cache, accessible list rendering and <code>&lt;noscript&gt;<\/code> fallback.<\/li>\n<\/ul>","raw_excerpt":"Display partners, retailers, locations or company branches on a responsive interactive map powered by Google Maps or OpenStreetMap.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/332242","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=332242"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/desk9"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=332242"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=332242"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=332242"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=332242"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=332242"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=332242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}