Title: BonPlaya &#8211; Nearby Beaches
Author: Mva7
Published: <strong>September 13, 2026</strong>
Last modified: September 13, 2026

---

Search plugins

![](https://ps.w.org/bonplaya-nearby-beaches/assets/banner-772x250.png?rev=3693726)

![](https://ps.w.org/bonplaya-nearby-beaches/assets/icon-256x256.png?rev=3693726)

# BonPlaya – Nearby Beaches

 By [Mva7](https://profiles.wordpress.org/mva7/)

[Download](https://downloads.wordpress.org/plugin/bonplaya-nearby-beaches.0.1.1.zip)

 * [Details](https://wordpress.org/plugins/bonplaya-nearby-beaches/#description)
 * [Reviews](https://wordpress.org/plugins/bonplaya-nearby-beaches/#reviews)
 *  [Installation](https://wordpress.org/plugins/bonplaya-nearby-beaches/#installation)
 * [Development](https://wordpress.org/plugins/bonplaya-nearby-beaches/#developers)

 [Support](https://wordpress.org/support/plugin/bonplaya-nearby-beaches/)

## Description

BonPlaya – Nearby Beaches lists beaches around a location you choose: widget, shortcode,
Gutenberg block, and beach detail pages.

 * Set an origin on a map (OpenStreetMap)
 * Load beaches from OpenStreetMap, with optional Wikimedia Commons photos
 * Optional links to reviews on [BonPlaya.com](https://bonplaya.com/) (full, subtle,
   or none)

The plugin source is licensed under **GPL-3.0-only**. The BonPlaya name and logo
are **not** licensed; forks must rebrand. See LICENSE and NOTICE.

This plugin does not track visitors and does not insert hidden links.

### External Services

The public site does **not** call these services from the visitor’s browser. Requests
are made by your WordPress server, except MyMemory on first view when a translation
is missing from the local cache.

#### OpenStreetMap / Overpass

 * **What:** Nearby `natural=beach` objects, plus (admin only) geocoding and map
   tiles.
 * **Why:** To find beaches around the origin you set, and to pick that origin on
   the settings map.
 * **When:** Overpass runs on admin refresh and on the scheduled sync — not on public
   pageviews. Nominatim geocoding runs only when an administrator searches the settings
   map. Bundled Leaflet and OSM tiles load only on the BonPlaya settings screen.
 * **Sent:** Origin latitude/longitude and radius (Overpass query); search text (
   Nominatim); site URL in the User-Agent. No visitor personal data.
 * **Links:** [OpenStreetMap copyright](https://www.openstreetmap.org/copyright),
   [Overpass API](https://overpass-api.de/), [Overpass Kumi](https://overpass.kumi.systems/),
   [Nominatim usage policy](https://operations.osmfoundation.org/policies/nominatim/),
   [OSM privacy](https://wiki.osmfoundation.org/wiki/Privacy_Policy)

#### Wikidata

 * **What:** Beach descriptions and Wikimedia Commons file claims (P18) for OSM 
   objects that have a Wikidata id.
 * **Why:** Short summaries and photo filenames for the local cache.
 * **When:** During photo enrich after a successful sync, or when an administrator
   clicks the photos button. Not on public pageviews.
 * **Sent:** Wikidata entity ids. Site URL in the User-Agent.
 * **Links:** [Wikidata licensing](https://www.wikidata.org/wiki/Wikidata:Licensing),
   [Wikimedia privacy policy](https://foundation.wikimedia.org/wiki/Policy:Privacy_policy)

#### Wikimedia Commons

 * **What:** Image metadata and a download of the photo file into the WordPress 
   media library (resized locally). Public pages never hotlink Commons.
 * **Why:** Beach photos on your site without third-party image URLs in the frontend.
 * **When:** During photo enrich after sync or via the admin photos button. Not 
   on public pageviews.
 * **Sent:** Commons file titles. Site URL in the User-Agent.
 * **Links:** [Reusing Commons content](https://commons.wikimedia.org/wiki/Commons:Reusing_content_outside_Wikimedia),
   [Wikimedia privacy policy](https://foundation.wikimedia.org/wiki/Policy:Privacy_policy)

#### MyMemory

 * **What:** Machine translation of cached English beach summaries into the site
   language (allowlist: nl, es, de, fr, it, pt).
 * **Why:** Show summaries in the visitor’s language when a translation is not already
   stored.
 * **When:** Cache-first. On first view of a beach list or beach page, if the locale
   is in the allowlist and no translation exists yet, the server calls MyMemory 
   once (with a short lock). Later views use the local table. Not used for plugin
   UI strings.
 * **Sent:** The English summary text (`q`), language pair, optional contact email
   from **settings** (`de`, never hardcoded), and site URL in the User-Agent.
 * **Links:** [MyMemory terms of service](https://mymemory.translated.net/terms-and-conditions)(
   includes privacy)

#### BonPlaya sitemap

 * **What:** Read-only fetch of `https://bonplaya.com/sitemap.xml` (and nested sitemap
   files) to get public beach page URLs.
 * **Why:** Optional “reviews” links in Full integration. Subtle mode only links
   the homepage in the footer; None links nothing.
 * **When:** After a successful beach sync, if the stored URL list is older than
   the cache TTL. Not on public pageviews. No BonPlaya API and no visitor data.
 * **Sent:** HTTP GET of the sitemap URL. Site URL in the User-Agent.
 * **Links:** [Plugin info](https://bonplaya.com/en/info/nearby-beaches), [Terms](https://bonplaya.com/en/info/terms),
   [Privacy](https://bonplaya.com/en/info/privacy), [sitemap](https://bonplaya.com/sitemap.xml)

### Privacy

This plugin does not track visitors, does not set analytics or advertising cookies,
and does not inject hidden affiliate or tracking links. Visitor browsers do not 
call OpenStreetMap, Wikidata, Wikimedia Commons, MyMemory, or BonPlaya. Visible 
BonPlaya.com links appear only if you set integration to Full or Subtle.

BonPlaya site privacy: https://bonplaya.com/en/info/privacy
 BonPlaya terms: https://
bonplaya.com/en/info/terms

## Screenshots

[⌊Settings: choose origin and radius on the map.⌉⌊Settings: choose origin and radius
on the map.⌉[

Settings: choose origin and radius on the map.

[⌊Nearby beaches on a page.⌉⌊Nearby beaches on a page.⌉[

Nearby beaches on a page.

[⌊Beach detail page.⌉⌊Beach detail page.⌉[

Beach detail page.

## Blocks

This plugin provides 1 block.

 *   Nearby beaches

## Installation

 1. Upload the plugin zip via Plugins  Add New  Upload Plugin, or copy the `bonplaya-
    nearby-beaches` folder into `/wp-content/plugins/`.
 2. Activate BonPlaya – Nearby Beaches.
 3. Open BonPlaya in the admin menu. Set latitude and longitude (or search on the map)
    and a radius.
 4. Save, then use the refresh button to sync nearby beaches (or wait for the scheduled
    sync).
 5. Add beaches to a page with the Nearby beaches block, the widget, or `[bonplaya_beaches]`.

## FAQ

### How do I show beaches on a page?

Use the Nearby beaches Gutenberg block, Appearance  Widgets, or a shortcode:

    ```
    [bonplaya_beaches]

    [bonplaya_beaches format="minimal" limit="5"]

    format is `card` (default) or `minimal`. `limit` is 1–30. `source="post"` shows beaches named in that post (the editor scan).
    ```

### May I copy this plugin and keep the BonPlaya name?

No. The code is GPL-3.0-only; the BonPlaya name and branding are trademarks. A fork
must use a different name and identity. See NOTICE.

### Does this send visitor data to BonPlaya?

No. Beach data is fetched server-side. Public pages do not call BonPlaya APIs. Integration
mode only controls whether public HTML links to BonPlaya.com.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“BonPlaya – Nearby Beaches” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Mva7 ](https://profiles.wordpress.org/mva7/)

[Translate “BonPlaya – Nearby Beaches” into your language.](https://translate.wordpress.org/projects/wp-plugins/bonplaya-nearby-beaches)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/bonplaya-nearby-beaches/),
check out the [SVN repository](https://plugins.svn.wordpress.org/bonplaya-nearby-beaches/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/bonplaya-nearby-beaches/)
by [RSS](https://plugins.trac.wordpress.org/log/bonplaya-nearby-beaches/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 0.1.1

 * Settings: progress for Refresh now and Refresh photos; notices stay on the update
   card.
 * Photo import no longer re-queues beaches that have no Commons file.
 * Overpass: retry and a second public instance when the first times out.
 * Distance text: “from our location”.
 * Directory icon, banner, and screenshots.

#### 0.1.0

 * First public license: GPL-3.0-only and trademark notice.
 * WordPress.org readme: External Services and Privacy.

## Meta

 *  Version **0.1.1**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.4 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 8.2 or higher **
 * Tags
 * [beach](https://wordpress.org/plugins/tags/beach/)[block](https://wordpress.org/plugins/tags/block/)
   [directory](https://wordpress.org/plugins/tags/directory/)[travel](https://wordpress.org/plugins/tags/travel/)
   [widget](https://wordpress.org/plugins/tags/widget/)
 *  [Advanced View](https://wordpress.org/plugins/bonplaya-nearby-beaches/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/bonplaya-nearby-beaches/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/bonplaya-nearby-beaches/reviews/)

## Contributors

 *   [ Mva7 ](https://profiles.wordpress.org/mva7/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/bonplaya-nearby-beaches/)