All settings are found under Listings → Settings in the WordPress admin.
They are stored as a single serialized option (ld_settings) and organized into 9 tabs.
Each section below documents every option with its type, default value, and description.
Core plugin settings and spam protection.
| Setting | Type | Default | Description |
|---|---|---|---|
| Directory Page | page select |
none |
The WordPress page that serves as the main directory index. Select the page where you placed the [local-directory] shortcode. Leave as "none" if you only use Gutenberg blocks. |
| Delete data on uninstall | checkbox |
off |
When enabled, all plugin data (listings, categories, settings, custom tables) is permanently deleted upon plugin uninstall. Leave off to preserve data if you plan to reinstall later. |
Google reCAPTCHA is a free spam protection service. Version 3 works invisibly — it detects bots without showing puzzles or checkboxes to your visitors. It protects the contact, claim, and report forms. Get your keys from google.com/recaptcha/admin.
| Setting | Type | Default | Description |
|---|---|---|---|
| reCAPTCHA v3 Site Key | text |
empty | The public site key from your reCAPTCHA v3 console — an API key is a unique code that connects your site to an external service. Required to enable spam protection. |
| reCAPTCHA v3 Secret Key | password |
empty | The secret key from your reCAPTCHA v3 console. Stored encrypted, never exposed in HTML. |
| Score Threshold | number |
0.5 |
Minimum reCAPTCHA score to accept a submission. Range: 0.0 (allow all) to 1.0 (block most). Lower values are more permissive. Google recommends 0.5 as a starting point. |
Map provider, API keys, zoom levels, clustering, and autocomplete.
| Setting | Type | Default | Description |
|---|---|---|---|
| Map Provider | select |
leaflet |
Choose between Leaflet / OpenStreetMap (free, no API key required) or Google Maps (requires API key). You can switch at any time without data loss. |
| Google Maps API Key | text |
empty | Required when Google Maps is selected as the provider. Must have Maps JavaScript API and Places API enabled. Also needed for Google Maps import and address autocomplete regardless of provider. |
| Directory Map Zoom | number |
13 |
Default zoom level for the main directory map. Higher values zoom in closer. Typical range: 1 (world) to 20 (building). |
| Single Listing Map Zoom | number |
15 |
Default zoom level for the map on individual listing pages. Usually set higher than the directory zoom for a closer view. |
| Enable Marker Clustering | checkbox |
on |
Groups nearby markers into clusters at lower zoom levels. Improves performance and readability when displaying many listings. Uses Leaflet.markercluster or Google MarkerClusterer depending on provider. |
| Map Style | select |
default |
Visual style preset for the map. Options: default, light, dark, satellite, terrain. Applied via map provider style APIs. |
| Enable Address Autocomplete | checkbox |
off |
Enables Google Places autocomplete on the search form address field and admin listing metabox. Requires a Google Maps API Key with the Places API enabled. |
| Restrict to Country | text |
empty | Two-letter ISO 3166-1 country code (e.g. US, IT, SG) to restrict address autocomplete suggestions. Leave empty for worldwide results. |
Control how listings appear on the frontend.
| Setting | Type | Default | Description |
|---|---|---|---|
| Listings Per Page | number |
12 |
Number of listings shown per page in the directory grid/list view. Range: 1–100. Also applies to shortcodes unless overridden with the per_page attribute. |
| Default View | select |
grid |
Initial display layout for the directory. Options: grid (card layout) or list (rows). Visitors can toggle between views. Shortcode view attribute overrides this. |
| "New" Badge Duration | number |
14 |
Number of days a listing shows the "New" badge after publication. Range: 1–365 days. Set to 0 to disable the badge entirely. |
Radius search defaults and map interaction behavior.
| Setting | Type | Default | Description |
|---|---|---|---|
| Default Search Radius | number |
25 |
Default distance for radius-based location search. Range: 1–500. Units depend on the Radius Unit setting below. |
| Radius Unit | select |
km |
Unit of measurement for radius search. Options: km (kilometers) or mi (miles). Applied globally to all radius searches and displayed in the search form. |
| Auto-Search on Map Move | checkbox |
off |
When enabled, the listing results automatically update as the user pans or zooms the map (viewport-based search). When off, a "Search this area" button appears instead. |
Controls for Google Maps JSON import processing.
| Setting | Type | Default | Description |
|---|---|---|---|
| Batch Size | number |
10 |
Number of listings processed per AJAX batch during import. Range: 1–100. Lower values reduce server load and timeout risk. Higher values speed up import on capable servers. |
| Download Photos | checkbox |
on |
When enabled, listing photos from Google Maps are downloaded and saved to the WordPress Media Library during import. Disable to skip photo downloads and speed up import. |
Toggle individual email notifications. All emails use the WordPress wp_mail() function and respect your SMTP settings. SMTP (Simple Mail Transfer Protocol) is how email gets delivered — by default, WordPress sends email through your server, which often lands in spam. An SMTP plugin (like WP Mail SMTP) routes emails through a proper email service for reliable delivery.
| Notification | Default | Recipient | Description |
|---|---|---|---|
| New Listing Submitted | on |
Admin | Sent when a visitor or registered user submits a new listing via the frontend form. |
| Listing Approved | on |
Listing Owner | Sent to the listing author when an admin approves their pending listing. |
| Listing Rejected | on |
Listing Owner | Sent to the listing author when an admin rejects their pending listing. |
| New Review | on |
Listing Owner | Sent when a visitor leaves a review on a listing. Includes the review text and star rating. |
| Claim Submitted | on |
Admin | Sent when a user submits a claim request to take ownership of a listing. |
| Claim Approved | on |
Claimant | Sent to the claimant when an admin approves their ownership claim. Includes a link to manage the listing. |
| Claim Rejected | on |
Claimant | Sent to the claimant when an admin rejects their ownership claim. |
| Listing Reported | on |
Admin | Sent when a visitor reports a listing for inaccurate or inappropriate content. |
| Weekly Digest | on |
Admin | A weekly summary email with new listings, reviews, claims, and reports from the past 7 days. |
Structured data and social sharing optimization.
| Setting | Type | Default | Description |
|---|---|---|---|
| Enable Schema.org JSON-LD | checkbox |
on |
Outputs LocalBusiness structured data in the <head> of each listing page. Schema.org structured data is a special code format that helps Google understand your content, enabling rich results like star ratings and business hours directly in search results. Includes name, address, coordinates, phone, hours, ratings, and images. |
| Enable Open Graph Meta Tags | checkbox |
on |
Adds Open Graph meta tags (og:title, og:description, og:image, og:url) to listing pages. These tags control how your listings appear when shared on social media — they tell Facebook, LinkedIn, and other platforms which title, description, and image to display in the link preview. |
Built-in listing performance tracking.
| Setting | Type | Default | Description |
|---|---|---|---|
| Enable Listing Analytics | checkbox |
on |
Tracks page views, search impressions, phone clicks, website clicks, and direction requests for each listing. Data is shown in the admin listing edit screen and the Analytics dashboard under Listings → Analytics. |
AI-powered description generation during Google Maps import. Uses OpenRouter as the LLM gateway.
| Setting | Type | Default | Description |
|---|---|---|---|
| OpenRouter API Key | password |
empty | Your OpenRouter API key. Required to enable AI descriptions during import. Get one from openrouter.ai/keys. |
| AI Model | model select |
openai/gpt-4.1-mini |
The LLM model used for generating descriptions. The dropdown lists models available through your OpenRouter account. Cost per token varies by model. |
| Description Language | text |
English |
Language for generated descriptions. Enter any language name (e.g. English, Italian, Japanese). The AI prompt instructs the model to write in this language. |
| Word Length | number |
100 |
Target word count for generated descriptions. Range: 50–500. The AI aims for this length but may vary slightly. |
| Writing Prompt | textarea |
built-in default | Custom system prompt sent to the AI model. Placeholders {name}, {category}, {address}, {language}, and {words} are replaced with actual listing data. Leave empty to use the built-in default prompt. |
Programmatic access
All settings are stored in a single option. You can read any value with
get_option('ld_settings')['key_name'].
See the Developer Reference for the full list of option keys and filter hooks.