Zum Inhalt springen

Open Beta – hilf uns beim Testen! Alle Inserate sind nur Beispiele.

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 Scope listings: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

  1. Öffne Dashboard → Einstellungen → API.
  2. Klicke auf API-Key erstellen und wähle Secret Key (sk_…).
  3. Vergib den Scope listings:read.
  4. Speichern und Key kopieren. Bewahre ihn sicher auf – er wird nur einmal vollständig angezeigt.

Schritt 2 — Plugin installieren und verbinden

  1. Installiere und aktiviere das WOHNO-Plugin in WordPress.
  2. Öffne das neue Wohno-Menü in der WordPress-Seitenleiste.
  3. Wechsle in den Reiter Verbindung, füge deinen Secret Key ein und speichere.
  4. 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]

AttributWerteStandardBeschreibung
cityText (2–80 Zeichen)Stadt-Filter
zipbis 5 ZiffernPLZ-Filter (Präfix)
rooms_min0–20Mindestanzahl Zimmer
rooms_max0–20Maximalanzahl Zimmer
rent_maxEuro (z. B. 1200)Max. Kaltmiete in Euro; das Plugin rechnet intern in Cent um
property_typeapartment, house, studio, wg_room, otherObjekttyp
wbs_only1Nur WBS-Inserate
qText (bis 100 Zeichen)Freitext-Suche
limit1–509Anzahl Inserate je Seite
columns1–43Spalten (nur Raster)
layoutgrid, cards, list, mapgridDarstellung
search1ausFilterleiste für Besucher anzeigen
load_more1 / false1„Mehr laden“-Button (Cursor-Pagination)

[wohno_listing]

AttributWerteBeschreibung
idUUIDID 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 Modified kostet 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

SymptomMögliche UrsacheLösung
Keine Inserate sichtbarKey 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ögertCaching (~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) nichtsFilter zu engcity, 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