WordPress-Plugin einrichten
Installiere das offizielle WOHNO-WordPress-Plugin, verbinde es per API-Key und binde deine Inserate per Block, Widget oder Shortcode nativ ein.
Das offizielle WOHNO-WordPress-Plugin zeigt deine Inserate nativ und SEO-freundlich auf deiner WordPress-Seite. Du pflegst deine Objekte genau einmal in WOHNO; das Plugin rendert sie als echtes HTML als Raster, große Karten, Liste oder interaktive Karte. Detailseite und Bewerbung laufen first-party auf wohno.de – Bewerbermappe, persönliche Daten und DSGVO-Verantwortung bleiben damit bei WOHNO.
Welches Problem das löst: Du willst deine WOHNO-Inserate auf der eigenen Makler-Website zeigen – automatisch synchron, ohne ein eigenes Portal zu betreiben und ohne dass Bewerberdaten auf deinem Server entstehen.
Suchst du eine reine Vanilla-JS-Einbindung ohne WordPress (statische Seite, eigenes Framework)? Dann ist der Guide Inserate auf deiner Website einbetten die richtige Anlaufstelle.
Voraussetzungen
- WordPress 6.4 oder neuer und PHP 8.1 oder neuer.
- Ein WOHNO-Konto mit mindestens einem veröffentlichten Inserat.
- Ein Secret Key (
sk_…) mit dem Scopelistings:read. Das Plugin ruft die API ausschließlich serverseitig auf und legt den Key verschlüsselt ab; er gelangt nie in den Browser.
Anders als bei einer browser-seitigen Einbindung brauchst du hier keinen Publishable Key (
pk_…) und keine Origin-Allowlist: Der Fetch passiert serverseitig in WordPress, nicht im Browser deiner Besucher.
Schritt 1 — Secret Key erstellen
- Öffne Dashboard → Einstellungen → API.
- Klicke auf API-Key erstellen und wähle Secret Key (
sk_…). - Vergib den Scope
listings:read. - Speichern und Key kopieren. Bewahre ihn sicher auf – er wird nur einmal vollständig angezeigt.
Schritt 2 — Plugin installieren und verbinden
- Installiere und aktiviere das WOHNO-Plugin in WordPress.
- Öffne das neue Wohno-Menü in der WordPress-Seitenleiste.
- Wechsle in den Reiter Verbindung, füge deinen Secret Key ein und speichere.
- Klicke auf Verbindung testen. Bei Erfolg ist das Plugin einsatzbereit.
Der Key wird serverseitig in wp_options gespeichert – verschlüsselt mit
AES-256-GCM, sofern AUTH_KEY/SECURE_AUTH_KEY in wp-config.php gesetzt sind
(WordPress-Standard) und der Server openssl bereitstellt. Er wird nur über HTTPS
im X-API-Key-Header gesendet, nie im Query-String und nie geloggt.
Schritt 3 — Inserate einbinden
Es gibt drei gleichwertige Wege:
- Gutenberg-Block „Wohno – Inserate“ (mit Editor-Vorschau und fertigen Block-Patterns).
- Klassisches Widget „Wohno – Inserate“ für Widget-Bereiche.
- Shortcode
[wohno_listings]für Seiten und Beiträge.
Ein typischer Shortcode mit Filtern:
[wohno_listings city="Köln" rooms_min="2" rent_max="1200" layout="grid" columns="3"]Ein einzelnes Inserat bindest du per ID ein:
[wohno_listing id="9f1c2a3b-1111-2222-3333-444455556666"]Im Reiter Einbinden der Plugin-Einstellungen findest du einen Shortcode-Generator mit Live-Vorschau und einen Auswahl-Dialog für einzelne Inserate – so musst du keine ID heraussuchen.
Shortcode-Referenz: [wohno_listings]
| Attribut | Werte | Standard | Beschreibung |
|---|---|---|---|
city | Text (2–80 Zeichen) | – | Stadt-Filter |
zip | bis 5 Ziffern | – | PLZ-Filter (Präfix) |
rooms_min | 0–20 | – | Mindestanzahl Zimmer |
rooms_max | 0–20 | – | Maximalanzahl Zimmer |
rent_max | Euro (z. B. 1200) | – | Max. Kaltmiete in Euro; das Plugin rechnet intern in Cent um |
property_type | apartment, house, studio, wg_room, other | – | Objekttyp |
wbs_only | 1 | – | Nur WBS-Inserate |
q | Text (bis 100 Zeichen) | – | Freitext-Suche |
limit | 1–50 | 9 | Anzahl Inserate je Seite |
columns | 1–4 | 3 | Spalten (nur Raster) |
layout | grid, cards, list, map | grid | Darstellung |
search | 1 | aus | Filterleiste für Besucher anzeigen |
load_more | 1 / false | 1 | „Mehr laden“-Button (Cursor-Pagination) |
[wohno_listing]
| Attribut | Werte | Beschreibung |
|---|---|---|
id | UUID | ID eines einzelnen Inserats |
Darstellung & Branding
Im Reiter Darstellung legst du Standard-Layout, Spaltenanzahl, Akzentfarbe und
Ecken-Rundung fest. Für volle gestalterische Kontrolle kannst du das Karten-Template
wohno/listing-card.php in dein (Child-)Theme kopieren – das Plugin nutzt dann
deine Version. Eigene Templates müssen selbst escapen
(esc_html, esc_url, esc_attr).
Karten-Layout & OpenStreetMap
Das Karten-Layout (layout="map") nutzt Leaflet mit OpenStreetMap-Kacheln und
benötigt keinen API-Key. Dabei laden die Browser deiner Besucher Kartenkacheln
direkt von OpenStreetMap, wodurch deren IP-Adresse an OpenStreetMap übertragen wird.
Ohne das Karten-Layout findet diese Verbindung nicht statt. Das Plugin steuert für
beide Datenflüsse einen Vorschlagstext für deine Datenschutzerklärung bei
(Werkzeuge → Datenschutz).
Performance: nicht-blockierendes Rendering
Das Plugin rendert nie blockierend gegen die API:
- Jede Abfrage hat ein Fresh-Fenster (~5 Minuten) und ein längeres Retain-Fenster (~1 Tag). Frische Treffer kommen sofort aus dem Cache.
- Veraltete Treffer liefern den Cache und stoßen eine Hintergrund-Aktualisierung an; nur der allererste Aufruf einer Abfrage holt synchron.
- Ein 5-Minuten-WP-Cron wärmt bekannte Abfragen im Hintergrund vor. Die
Aktualisierung ist ETag-validiert – ein
304 Not Modifiedkostet kein API-Kontingent.
Sicherheit
- Der Secret Key wird nur serverseitig verwendet (verschlüsselt at-rest), nur
über HTTPS im
X-API-Key-Header gesendet und nie im Browser oder Seitenquelltext preisgegeben. - Eine Nicht-HTTPS-Konfiguration der API-Basis wird abgelehnt, damit der key-tragende Request nie auf Klartext herabgestuft werden kann.
- Auf deiner Website entstehen keine Bewerberdaten – die Bewerbung läuft first-party auf wohno.de.
Fehlerbehandlung
| Symptom | Mögliche Ursache | Lösung |
|---|---|---|
| Keine Inserate sichtbar | Key ungültig oder ohne Scope | „Verbindung testen“ ausführen; Key mit listings:read neu anlegen |
| „API-Key ungültig oder ohne Berechtigung“ | Falscher Scope (401/403) | Im Dashboard einen sk_…-Key mit listings:read erstellen |
| Inserate erscheinen verzögert | Caching (~5 Min.) | Kurz warten; der Prewarm aktualisiert im Hintergrund |
| „API-Limit erreicht“ | Rate-Limit (429) | Später erneut versuchen; das Plugin liefert so lange den Cache |
| Filter liefert (fast) nichts | Filter zu eng | city, rent_max oder rooms_min lockern |
Konfiguration für Staging/Self-Hosting
Über die Konstante WOHNO_API_BASE in wp-config.php lässt sich die API-Basis-URL
überschreiben (Standard https://wohno.de). Es wird nur HTTPS akzeptiert –
Ausnahme sind lokale Entwicklungs-Hosts (localhost, *.test, *.local).
define( 'WOHNO_API_BASE', 'https://staging.example.com' );Nächste Schritte
- Inserate auf deiner Website einbetten — browser-seitige Einbindung mit Publishable Key.
- Authentifizierungs-Guide — Key-Typen, Scopes und Rotation.
- API-Referenz — die vollständige
listings-Feld-Whitelist.