{"id":326622,"date":"2026-06-18T06:06:20","date_gmt":"2026-06-18T06:06:20","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/wohno-immobilien-inserate\/"},"modified":"2026-06-18T06:05:43","modified_gmt":"2026-06-18T06:05:43","slug":"wohno","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/wohno\/","author":23516947,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.16.1","stable_tag":"0.16.1","tested":"7.0","requires":"6.4","requires_php":"8.1","requires_plugins":null,"header_name":"Wohno \u2013 Immobilien-Inserate","header_author":"WOHNO UG (haftungsbeschr\u00e4nkt)","header_description":"Zeigt deine Wohno-Inserate nativ auf deiner WordPress-Seite (SEO-f\u00e4hig). Detailseite & Bewerbung laufen first-party auf wohno.de.","assets_banners_color":"e2751c","last_updated":"2026-06-18 06:05:43","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wohno.de\/wordpress-plugin","header_author_uri":"https:\/\/wohno.de","rating":0,"author_block_rating":0,"active_installs":0,"downloads":26,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.16.1":{"tag":"0.16.1","author":"wohno","date":"2026-06-18 06:05:43"}},"upgrade_notice":{"0.2.5":"<p>Important: fixes saving the API key (it could fail with a false &quot;please enter a\nsecret key&quot; error and never store the key).<\/p>","0.2.4":"<p>More robust API key entry: tolerates invisible characters, quotes or a label\ncopied alongside the key.<\/p>","0.2.3":"<p>Fixes API key entry when the copied key contained an invisible space.<\/p>","0.2.2":"<p>English readme and current-version compatibility for the wordpress.org directory.<\/p>","0.2.1":"<p>Provider\/author details (WOHNO UG) and minor hardening.<\/p>","0.2.0":"<p>New features (single listing, &quot;load more&quot;, map) and security hardening.<\/p>","0.1.0":"<p>First version.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3576632,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3576632,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3576632,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3576632,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3576632,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250},"banner.svg":{"filename":"banner.svg","revision":3576632,"resolution":false,"location":"assets","locale":false}},"assets_blueprints":{},"all_blocks":{"wohno\/listings":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"wohno\/listings","title":"Wohno \u2013 Inserate","category":"widgets","icon":"building","description":"Zeigt Wohno-Inserate nativ (SEO-f\u00e4hig). Detail & Bewerbung laufen auf wohno.de.","textdomain":"wohno","supports":{"html":false,"align":["wide","full"]},"attributes":{"city":{"type":"string","default":""},"zip":{"type":"string","default":""},"rooms_min":{"type":"string","default":""},"rooms_max":{"type":"string","default":""},"rent_max":{"type":"string","default":""},"property_type":{"type":"string","default":""},"wbs_only":{"type":"boolean","default":false},"q":{"type":"string","default":""},"limit":{"type":"number","default":9},"columns":{"type":"number","default":3},"load_more":{"type":"boolean","default":true},"layout":{"type":"string","default":"grid"},"search":{"type":"boolean","default":false}},"editorScript":"wohno-block-editor"}},"tagged_versions":["0.16.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3576632,"resolution":"1","location":"assets","locale":"","width":1600,"height":1451},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3576632,"resolution":"2","location":"assets","locale":"","width":1600,"height":1212},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3576632,"resolution":"3","location":"assets","locale":"","width":1600,"height":1212}},"screenshots":{"1":"Listings grid on a WordPress page.","2":"The \"Wohno \u2013 Inserate\" Gutenberg block with filter and layout options.","3":"The settings page with API key entry and connection test."}},"plugin_section":[],"plugin_tags":[16194,4528,5070,2199,1474],"plugin_category":[],"plugin_contributors":[267649],"plugin_business_model":[],"class_list":["post-326622","plugin","type-plugin","status-publish","hentry","plugin_tags-immobilien","plugin_tags-listings","plugin_tags-property","plugin_tags-real-estate","plugin_tags-rentals","plugin_contributors-wohno","plugin_committers-wohno"],"banners":{"banner":"https:\/\/ps.w.org\/wohno\/assets\/banner-772x250.png?rev=3576632","banner_2x":"https:\/\/ps.w.org\/wohno\/assets\/banner-1544x500.png?rev=3576632","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/wohno\/assets\/icon.svg?rev=3576632","icon":"https:\/\/ps.w.org\/wohno\/assets\/icon.svg?rev=3576632","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/wohno\/assets\/screenshot-1.png?rev=3576632","caption":"Listings grid on a WordPress page."},{"src":"https:\/\/ps.w.org\/wohno\/assets\/screenshot-2.png?rev=3576632","caption":"The \"Wohno \u2013 Inserate\" Gutenberg block with filter and layout options."},{"src":"https:\/\/ps.w.org\/wohno\/assets\/screenshot-3.png?rev=3576632","caption":"The settings page with API key entry and connection test."}],"raw_content":"<!--section=description-->\n<p>The official <strong>Wohno<\/strong> plugin fetches your real-estate listings through the Wohno\nAPI and renders them as <strong>native, SEO-friendly HTML<\/strong> directly on your WordPress\nsite (list\/grid). Clicking a listing opens its detail page on wohno.de, where the\napplication also takes place. This keeps the applicant folder \u2014 including all\npersonal data and the related GDPR responsibility \u2014 entirely with Wohno, while you\npresent a high-quality showcase on your own domain.<\/p>\n\n<p><strong>Highlights<\/strong><\/p>\n\n<ul>\n<li><strong>Native &amp; SEO-friendly<\/strong> \u2013 real HTML listings on your domain, no iframe.<\/li>\n<li><strong>Image gallery &amp; detail modal<\/strong> \u2013 each card shows all photos; a click opens\nan in-page modal with the description, key facts and \"view \/ apply\" buttons.<\/li>\n<li><strong>Three ways to embed<\/strong> \u2013 Gutenberg block, classic widget, and shortcode.<\/li>\n<li><strong>Four layouts<\/strong> \u2013 grid, large cards, list and an interactive map.<\/li>\n<li><strong>Front-end search<\/strong> \u2013 an optional filter bar (city, rooms, rent, type, WBS,\nfull-text) lets your visitors search your whole portfolio, server-side and\nSEO-friendly. Enable with the block toggle or <code>search=\"1\"<\/code>.<\/li>\n<li><strong>Single listing<\/strong> \u2013 embed one listing's card via <code>[wohno_listing id=\"\u2026\"]<\/code>.<\/li>\n<li><strong>Adjustable branding<\/strong> \u2013 accent colour and corner radius in the settings.<\/li>\n<li><strong>Filters<\/strong> \u2013 city, ZIP, number of rooms, maximum rent, property type, WBS,\nfull-text search.<\/li>\n<li><strong>\"Load more\"<\/strong> \u2013 cursor-based pagination for the list\/grid.<\/li>\n<li><strong>Map layout<\/strong> \u2013 optional interactive map (Leaflet + OpenStreetMap, no API key).<\/li>\n<li><strong>Fast<\/strong> \u2013 server-side fetch with caching (transient + ETag) and a background\nprewarm, so page rendering never blocks on the API and your quota is spared.<\/li>\n<li><strong>Secure<\/strong> \u2013 the API key is encrypted at rest, used server-side only over HTTPS,\nand never reaches the browser; no applicant data is stored on your site.<\/li>\n<li><strong>Translatable<\/strong> \u2013 fully i18n-ready (text domain <code>wohno<\/code>).<\/li>\n<\/ul>\n\n<p><strong>Embed via shortcode<\/strong><\/p>\n\n<pre><code>[wohno_listings city=\"K\u00f6ln\" rooms_min=\"2\" rent_max=\"1200\" limit=\"9\" columns=\"3\"]\n<\/code><\/pre>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the <strong>Wohno API<\/strong> (https:\/\/wohno.de) to fetch and display\nyour listings. Without this connection the plugin cannot show any listings.<\/p>\n\n<ul>\n<li><strong>When:<\/strong> on every page view that displays listings (server-side, with ~5\nminutes of caching), plus when you click \"Test connection\" in the admin.<\/li>\n<li><strong>Where:<\/strong> <code>https:\/\/wohno.de\/api\/v1\/listings<\/code><\/li>\n<li><strong>What is sent:<\/strong> your API key (in the <code>X-API-Key<\/code> header, server-side only,\nnever in the browser), the filters configured in the block\/widget\/shortcode\n(e.g. city, price), and a plugin version identifier (<code>X-Wohno-Plugin<\/code>). <strong>No<\/strong>\ndata about your site's visitors is sent.<\/li>\n<li><strong>What is received:<\/strong> public listing data (title, key facts, image URLs, slug\nfor the detail link).<\/li>\n<\/ul>\n\n<p>Provider: WOHNO UG (haftungsbeschr\u00e4nkt). Terms: https:\/\/wohno.de\/agb \u00b7 Privacy:\nhttps:\/\/wohno.de\/datenschutz<\/p>\n\n<p><strong>OpenStreetMap (only with the map layout):<\/strong> if you use the map layout\n(<code>layout=\"map\"<\/code>), your visitors' browsers load map tiles from OpenStreetMap\n(<code>https:\/\/*.tile.openstreetmap.org<\/code>). This transmits the visitor's IP address to\nOpenStreetMap. Without the map layout no such connection is made. Tile usage\npolicy: https:\/\/operations.osmfoundation.org\/policies\/tiles\/ \u00b7 Privacy:\nhttps:\/\/wiki.osmfoundation.org\/wiki\/Privacy_Policy<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>In the Wohno dashboard, under <strong>API Keys<\/strong>, create a secret key (<code>sk_\u2026<\/code>) with\nthe <strong><code>listings:read<\/code><\/strong> scope.<\/li>\n<li>In WordPress, open the new <strong>Wohno<\/strong> menu in the sidebar, paste the key, and click \"Test\".<\/li>\n<li>Place the <strong>\"Wohno \u2013 Inserate\"<\/strong> block, the matching widget, or the\n   [wohno_listings] shortcode on a page.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20wohno%20account%3F\"><h3>Do I need a Wohno account?<\/h3><\/dt>\n<dd><p>Yes. You create an API key with the <code>listings:read<\/code> scope in the Wohno dashboard.<\/p><\/dd>\n<dt id=\"are%20applications%20handled%20through%20my%20site%3F\"><h3>Are applications handled through my site?<\/h3><\/dt>\n<dd><p>No. The detail page and the application run first-party on wohno.de. No applicant\ndata is created on your site.<\/p><\/dd>\n<dt id=\"will%20my%20listings%20on%20my%20domain%20be%20indexed%20by%20google%3F\"><h3>Will my listings on my domain be indexed by Google?<\/h3><\/dt>\n<dd><p>Yes, the overview list is rendered as real HTML. The individual detail pages live\ncanonically on wohno.de.<\/p><\/dd>\n<dt id=\"is%20my%20api%20key%20safe%3F\"><h3>Is my API key safe?<\/h3><\/dt>\n<dd><p>Yes. The key is stored server-side only (encrypted where the server provides\nopenssl) and sent only over HTTPS in the <code>X-API-Key<\/code> header \u2014 never in the\nbrowser, never in the page source, never in logs.<\/p><\/dd>\n<dt id=\"are%20%22discrete%22%20listings%20shown%3F\"><h3>Are \"discrete\" listings shown?<\/h3><\/dt>\n<dd><p>No. Discrete listings are intentionally not delivered by the API.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.16.1<\/h4>\n\n<ul>\n<li>Internal: the short-lived negative-cache transient now uses an explicitly\nprefixed name (\"wohno_neg_\u2026\") so its option\/transient key is unmistakably\nnamespaced in the shared transient store (plugin-review hardening).<\/li>\n<\/ul>\n\n<h4>0.16.0<\/h4>\n\n<ul>\n<li>Privacy\/compliance: the public \"Bereitgestellt von Wohno\" credit link is now\noff by default and only appears when the site admin explicitly opts in on the\nsettings page (no attribution on the front end without consent).<\/li>\n<li>Internal: all admin CSS is now enqueued via wp_enqueue_style \/\nwp_add_inline_style instead of inline  tags.<\/li>\n<li>Internal: every registered setting uses a named sanitize callback.<\/li>\n<li>Privacy: the suggested privacy-policy text now also notes that listing images\nload from Wohno's servers in the visitor's browser.<\/li>\n<li>Internal: bundled a LICENSE file for the included Leaflet library.<\/li>\n<\/ul>\n\n<h4>0.15.7<\/h4>\n\n<ul>\n<li>Fix: the \"Plugin URI\" and \"Author URI\" headers are now distinct \u2014 the plugin\nURI points at the plugin's landing page, the author URI at wohno.de\n(wordpress.org requires the two to differ).<\/li>\n<\/ul>\n\n<h4>0.15.6<\/h4>\n\n<ul>\n<li>Compatibility: tested up to WordPress 7.0.<\/li>\n<li>Maintenance: display name aligned across the readme and the plugin header\n(\"Wohno \u2013 Immobilien-Inserate\").<\/li>\n<li>Internal: iterate query parameters by key\/value when preserving page context,\navoiding a needless superglobal index lookup.<\/li>\n<\/ul>\n\n<h4>0.15.5<\/h4>\n\n<ul>\n<li>Fix: the maximum-rent filter now works. The Wohno API expects the rent filter\nin cents (the unit it also returns); the plugin now converts your euro input\naccordingly, so e.g. \"max 1,200 \u20ac\" filters correctly instead of returning\n(almost) nothing.<\/li>\n<\/ul>\n\n<h4>0.15.4<\/h4>\n\n<ul>\n<li>Fix: the readme's \"Tested up to\" now points at a released WordPress version.<\/li>\n<li>Fix: the settings-page live preview showed sample prices 100\u00d7 too low \u2014 the\ndemo data now uses the same cents unit as the real API.<\/li>\n<li>Hardening: the detail and \"load more\" endpoints now restrict the listing id to\na UUID and briefly cache \"not found\" results, so the public endpoints can't be\nused to probe the Wohno API with random id\/cursor values.<\/li>\n<li>Hardening: the front-end filter bar no longer lets visitors seed the background\nprewarm cache \u2014 only the embed's own (author-defined) view is prewarmed.<\/li>\n<\/ul>\n\n<h4>0.15.3<\/h4>\n\n<ul>\n<li>The sidebar menu shows the coloured WOHNO \"W\" icon again, now at full opacity\nin every state (idle, hover, current) instead of WordPress' dimmed default.<\/li>\n<\/ul>\n\n<h4>0.15.2<\/h4>\n\n<ul>\n<li>The sidebar menu icon is now monochrome and follows the WordPress admin colour\nscheme (grey when idle, light on hover\/current) like a native icon, via a CSS\nmask.<\/li>\n<\/ul>\n\n<h4>0.15.1<\/h4>\n\n<ul>\n<li>Fix: the search\/filter fields no longer overflow the bar (box-sizing) and the\nbar is fully responsive \u2014 fields stack to two columns, then one, on smaller\nscreens.<\/li>\n<li>The sidebar menu now uses the WOHNO \"W\" icon.<\/li>\n<\/ul>\n\n<h4>0.15.0<\/h4>\n\n<ul>\n<li>The Wohno settings now live in their own top-level menu in the WordPress\nsidebar (with a building icon) instead of under Settings.<\/li>\n<\/ul>\n\n<h4>0.14.1<\/h4>\n\n<ul>\n<li>Fix: the search bar's fields and the amber \"Search\" button were invisible on\nsome themes \u2014 the bar's CSS variables weren't defined (it sits outside the\nlistings wrapper). Fields now have a clear background and the button is\nvisible.<\/li>\n<\/ul>\n\n<h4>0.14.0<\/h4>\n\n<ul>\n<li>Redesigned, more polished search &amp; filter bar (clear fields with icons, a\nprominent search button, tidy responsive layout).<\/li>\n<li>New single-listing picker in the settings (Embed tab): choose a listing from a\ndropdown and the <code>[wohno_listing id=\"\u2026\"]<\/code> shortcode is generated \u2014 no need to\nlook up the ID.<\/li>\n<\/ul>\n\n<h4>0.13.0<\/h4>\n\n<ul>\n<li>The plugin now follows the site language: a bundled English (en_US) translation\nmeans English sites show English, German sites show German \u2014 automatically.<\/li>\n<li>Availability dates are now formatted in the site's locale\/date format instead\nof a fixed German format.<\/li>\n<\/ul>\n\n<h4>0.12.0<\/h4>\n\n<ul>\n<li>Lighter pages: long listing descriptions are no longer embedded in every card.\nA short teaser is embedded and the full text is lazy-loaded (cached) when the\ndetail modal opens \u2014 much less HTML with many\/long listings.<\/li>\n<\/ul>\n\n<h4>0.11.0<\/h4>\n\n<ul>\n<li>Fix: prices were shown 100\u00d7 too high (e.g. \"70,000 \u20ac\" instead of \"700.00 \u20ac\").\nThe Wohno API delivers prices in cents; they are now converted correctly.<\/li>\n<li>New: the detail modal shows the full cost breakdown (cold rent, utilities,\nwarm rent, deposit) when available.<\/li>\n<\/ul>\n\n<h4>0.10.2<\/h4>\n\n<ul>\n<li>The detail modal now shows the full listing description (the safety cap was far\ntoo low and cut normal descriptions short).<\/li>\n<\/ul>\n\n<h4>0.10.1<\/h4>\n\n<ul>\n<li>The detail modal now uses its own, consistent type scale instead of inheriting\nthe theme's font size \u2014 balanced headline, facts and description.<\/li>\n<\/ul>\n\n<h4>0.10.0<\/h4>\n\n<ul>\n<li>New \"Start\" tab (now the default) with an at-a-glance overview of what the\nplugin does and a status-aware \"first steps\" guide linking to the right tabs.<\/li>\n<\/ul>\n\n<h4>0.9.0<\/h4>\n\n<ul>\n<li>New: block patterns (grid, large cards, search + list, map) for one-click\ninsertion.<\/li>\n<li>New: suggested privacy-policy text (Tools \u2192 Privacy) covering the Wohno API\nand OpenStreetMap data flows.<\/li>\n<li>New: an optional, dismissible review prompt for engaged admins, plus a\ndeactivation feedback dialog (the reason is only sent if you choose to, via a\npre-filled e-mail \u2014 no automatic tracking).<\/li>\n<\/ul>\n\n<h4>0.8.3<\/h4>\n\n<ul>\n<li>The \"Settings saved\" confirmation now appears below the header (instead of\ninside it) and reads in German (\"Einstellungen gespeichert.\").<\/li>\n<\/ul>\n\n<h4>0.8.2<\/h4>\n\n<ul>\n<li>The settings-page buttons, checkboxes and focus rings now use the WOHNO accent\ncolour instead of the default WordPress blue.<\/li>\n<\/ul>\n\n<h4>0.8.1<\/h4>\n\n<ul>\n<li>The generator preview now also works before any listings exist: it shows a\nfaithful mock (sample listings with placeholder images) rendered through the\nreal card template, so you can preview every layout right away.<\/li>\n<\/ul>\n\n<h4>0.8.0<\/h4>\n\n<ul>\n<li>The shortcode generator now has a live preview: the configured listings render\nright below the generator (admin-only, server-side, accurate) as you change\nthe options.<\/li>\n<\/ul>\n\n<h4>0.7.0<\/h4>\n\n<ul>\n<li>New: a live shortcode generator on the settings page (tab \"Einbinden\") \u2014\nconfigure layout, columns, filters and toggles and copy the generated\n  [wohno_listings \u2026] shortcode.<\/li>\n<\/ul>\n\n<h4>0.6.1<\/h4>\n\n<ul>\n<li>Fix: a single\/few results no longer shrink to a tiny card \u2014 grid columns are\nnow a maximum, with a comfortable minimum card width.<\/li>\n<li>Fix: the detail modal now shows the image gallery (the media area no longer\ncollapses).<\/li>\n<\/ul>\n\n<h4>0.6.0<\/h4>\n\n<ul>\n<li>Image gallery in every card (browse all photos with arrows\/dots) and a detail\nmodal on click \u2014 description, key facts, price, and \"view on wohno.de\" \/\n\"apply now\" buttons. Larger, refreshed card. No extra API request.<\/li>\n<\/ul>\n\n<h4>0.5.0<\/h4>\n\n<ul>\n<li>Front-end search &amp; filter bar (block toggle or <code>search=\"1\"<\/code>): visitors can\nfilter your portfolio by text, city, type, rooms, rent and WBS \u2014 server-side\nand SEO-friendly, working with every layout and \"load more\".<\/li>\n<\/ul>\n\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>Redesigned settings page: gradient hero, tabbed navigation (Display \/\nConnection \/ Embed \/ Help) with a quick-start tutorial, FAQ and contact details.<\/li>\n<li>Adjustable branding: accent colour and corner radius.<\/li>\n<li>The \"Provided by Wohno\" link can be turned off.<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>New layouts: large cards (<code>layout=\"cards\"<\/code>) and list (<code>layout=\"list\"<\/code>) next to\ngrid and map; refreshed card design closer to wohno.de.<\/li>\n<li>Site-wide default layout and column count in the settings.<\/li>\n<\/ul>\n\n<h4>0.2.5<\/h4>\n\n<ul>\n<li>Important fix: saving the API key now works. WordPress sanitises a setting\ntwice on save; the second pass received the already-encrypted key and discarded\nit, which produced a false \"Please enter a secret key (sk_\u2026)\" error and left the\nkey unsaved. The sanitiser is now idempotent.<\/li>\n<\/ul>\n\n<h4>0.2.4<\/h4>\n\n<ul>\n<li>Fix: the API key field now extracts the key even when copying dragged along an\ninvisible character (word joiner, soft hyphen, directional mark), quotes, or a\nlabel \u2014 not just plain spaces.<\/li>\n<\/ul>\n\n<h4>0.2.3<\/h4>\n\n<ul>\n<li>Fix: the API key field now accepts keys that picked up an invisible\n(non-breaking or zero-width) space when copied from a styled dashboard \u2014 all\nwhitespace is stripped before validation.<\/li>\n<\/ul>\n\n<h4>0.2.2<\/h4>\n\n<ul>\n<li>readme rewritten in English (wordpress.org requirement).<\/li>\n<li>\"Tested up to\" set to the current WordPress version.<\/li>\n<li>Removed the unnecessary load_plugin_textdomain() call; excluded packaging\nartifacts from the distributed build.<\/li>\n<\/ul>\n\n<h4>0.2.1<\/h4>\n\n<ul>\n<li>Provider\/author\/copyright set to WOHNO UG (haftungsbeschr\u00e4nkt).<\/li>\n<li>Hardening and cleanup: no internal references in the shipped code, translations\nfor editor scripts (<code>wp_set_script_translations<\/code>).<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Single listing via <code>[wohno_listing id=\"\u2026\"]<\/code> and a dedicated block.<\/li>\n<li>\"Load more\" (cursor pagination) for the list\/grid.<\/li>\n<li>Map layout (<code>layout=\"map\"<\/code>) with Leaflet + OpenStreetMap (no API key).<\/li>\n<li>Non-blocking rendering with background prewarm (WP-Cron); HTTPS enforced.<\/li>\n<li>API key encrypted at rest; hardened (private key access, template whitelist).<\/li>\n<li>Theme override for the card markup; third-party services documented.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release (Phase 1): native list\/grid, shortcode, Gutenberg block, widget,\nfilters, caching (transient + ETag), connection test.<\/li>\n<\/ul>","raw_excerpt":"Show your Wohno real-estate listings natively and SEO-friendly on your WordPress site. Detail page and application stay on wohno.de.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/326622","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=326622"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/wohno"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=326622"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=326622"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=326622"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=326622"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=326622"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=326622"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}