A multilingual real estate listing portal for the Costa del Sol property market, built on WordPress and connected live to the Resales Online MLS API v6 — serving sales listings, long-term rentals, short-term rentals, and new developments in up to 14 languages, with no local property storage.
14
Languages Supported
4
Property Categories
0
Local Property Storage
Live
Resales Online MLS Feed
The Challenge
International property buyers rarely search in English. A Spanish buyer, a German investor, and a Dutch retiree all need to discover the same listing — but in their own language, with the right search filters, and with a clear path to contact an agent. The challenge was to build a site that could serve live MLS property data in 14 languages without maintaining a translated copy of thousands of listing descriptions.
The solution was to pass the visitor's language code directly to the Resales Online API — which returns native-language data — while WPML handles all UI, pages, and navigation strings independently. No translation layer, no post-processing, no content management overhead. Property descriptions arrive in the buyer's language from the source.
What Was Delivered
Technology Stack
A production-hardened stack tuned for multilingual SEO performance on Azure infrastructure.
CMS
MLS Data
Maps
SEO
Caching
Hosting
Analytics
Social
Key Features
The site fetches property data directly from the Resales Online API v6 on every request, passing the visitor's detected language code (from browser Accept-Language header or cookie) to receive native-language listing descriptions. No translation layer, no content management — the data arrives in the buyer's language from the source. A Spanish buyer sees Spanish descriptions, a German investor sees German descriptions, a Dutch retiree sees Dutch descriptions — all served from the same MLS feed, in real time, with zero manual translation overhead.
Search form supports price range, bedroom/bathroom count, property type, location, and a new-development flag. Results persist across pagination via PHP session state, with sort options for price ascending/descending, location, and date newest/oldest. All search strings, labels, and filter options are rendered via WPML in the visitor's language.
A custom WordPress plugin dequeues the MLS plugin's default Leaflet/OpenStreetMap assets and injects the Google Maps JavaScript API. It intercepts the initLeafletMap() call via a JavaScript stub in wp_head, extracts coordinates, and re-renders the property map with a Google Maps marker.
Every property detail page includes a lead form capturing name, email, phone, comments, preferred scheduling date, and in-person or video call preference. Leads are stored in wp_mls_plugin_lead_form and emailed to the admin immediately on submission.
AIOSEO Pro manages per-property meta titles, descriptions, schema markup, and XML sitemaps. IndexNow integration automatically pings Bing and Yandex on content publish. Google Search Console is connected for search statistics, giving each of the 14 language markets genuine organic visibility.
WP Rocket caches rendered HTML, minifies and combines CSS/JS, lazy-loads images, and generates critical CSS. The Resales Online API location and currency endpoints are cached as WordPress transients with 12-hour expiry to reduce API calls on high-traffic pages. On a cache hit, the visitor receives static HTML with zero PHP execution, zero database queries, and zero MLS API calls — the full performance benefit of a static site while retaining live data freshness on cache miss.
System Architecture
Browser Request (with Accept-Language: de-DE)
│
▼
WordPress (Azure Web App)
│ WP Rocket: serve cached HTML if warm
│ WPML: resolve UI language = 'de'
▼
mls-plugin/includes/mls-plugin-fetch-properties.php
│ Builds API query: API key + filter IDs
│ + lang=DE (passed to Resales Online)
│
Resales Online API v6
│ Returns property data in German
▼
mls-plugin/public/mls-plugin-propertieslist.php
│ [mls_plugin_properties_shortcode]
│ Renders grid/list of property cards
▼
mls-plugin/public/mls-plugin-propertiesdetail.php
│ [mls_property_details_shortcode]
│ Full property page + lead form
│
mls-gmaps-bridge/mls-gmaps-bridge.php
│ Dequeues Leaflet, injects Google Maps
│ Captures initLeafletMap() coordinates
▼
Browser: property page in German with Google Maps
Lead form submit → wp_mls_plugin_lead_form (stored)
→ Email to info@ (sent immediately)
Live Feed
The MLS API is queried on every property list and detail page request. No local property table exists — search filters, sort order, and language are all passed as query parameters directly to Resales Online.
Smart Caching
Only location dropdown data and currency lists are cached via 12-hour WordPress transients. Property records, images, prices, and availability are always fetched live — the site never shows a sold or mispriced property.
Multilingual Routing
WPML routes 14 language variants via URL prefixes. Each variant has independently configured AIOSEO meta, its own XML sitemap entry, and its own IndexNow ping schedule — giving each language market genuine SEO presence.
By the Numbers
14
Languages via Single API Parameter
4
Property Categories (Sales, LTR, STR, New Dev)
12h
API Cache Transient TTL
0
Local Property Rows Stored
We build custom WordPress solutions for complex real-world problems — live API integrations, multilingual SEO, lead capture systems, and performance-optimised hosting on Azure. Let's talk about your project.