{"id":368584,"date":"2026-09-25T10:09:18","date_gmt":"2026-09-25T10:09:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/zinn-cache\/"},"modified":"2026-09-25T16:53:40","modified_gmt":"2026-09-25T16:53:40","slug":"zinn-cache","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/zinn-cache\/","author":23304153,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.6","stable_tag":"1.3.6","tested":"7.1.2","requires":"6.6","requires_php":"8.2","requires_plugins":null,"header_name":"Zinn\u00ae Cache","header_author":"Neil Lock \u2014 CEO, Zinn Digital\u00ae Ltd","header_description":"For sites hosted with Zinn Digital\u00ae. Controls the page cache your Zinn\u00ae server already provides \u2014 smart auto-purge on content change, remote purge from your Zinn\u00ae dashboard, a Redis object-cache toggle, safe WordPress\/WooCommerce exclusions, and one-click admin login. This is a cache controller, not a cache engine. Hosting elsewhere? Install Zinn\u00ae Cache Engine instead.","assets_banners_color":"505f92","last_updated":"2026-09-25 16:53:40","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/zinndigital.com\/wordpress-plugins\/zinn-cache","header_author_uri":"https:\/\/zinndigital.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":66,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.3.2":{"tag":"1.3.2","author":"zinndigital","date":"2026-09-25 10:09:06","revision":3712815},"1.3.4":{"tag":"1.3.4","author":"zinndigital","date":"2026-09-25 13:13:05","revision":3713091},"1.3.5":{"tag":"1.3.5","author":"zinndigital","date":"2026-09-25 15:19:02","revision":3713240},"1.3.6":{"tag":"1.3.6","author":"zinndigital","date":"2026-09-25 16:53:40","revision":3713345}},"upgrade_notice":{"1.1.2":"<p>Stops the plugin re-downloading and re-installing itself on every update check. No settings change.<\/p>","1.1.1":"<p>Site-wide settings changes now purge the page cache. No settings change.<\/p>","1.1.0":"<p>Adds the Zinn\u00ae panel to the WordPress admin. No settings change.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3712814,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3712814,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3712814,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3712814,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.3.2","1.3.4","1.3.5","1.3.6"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3713090,"resolution":"1","location":"assets","locale":"","width":1280,"height":985},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3713090,"resolution":"2","location":"assets","locale":"","width":1280,"height":860},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3713090,"resolution":"3","location":"assets","locale":"","width":1280,"height":1030},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3713090,"resolution":"4","location":"assets","locale":"","width":1280,"height":985}},"screenshots":{"1":"The Page cache tab: the full-page cache switch, how long a page stays cached, and whether signed-in visitors are ever served a cached page. The panel above the tabs says plainly when the server cannot cache \u2014 here, a server that is not LiteSpeed.","2":"The Purging tab: clear only the affected pages when content changes, clear everything after an update, and the tools to purge by hand or export your settings.","3":"The Exclusions tab: addresses, query parameters and cookies that are never cached, on top of the WordPress and WooCommerce defaults that always apply.","4":"Every screen is translated \u2014 here the Page cache tab in Arabic, right to left."}},"plugin_section":[262246],"plugin_tags":[146,7913,3853,247,45952],"plugin_category":[52,54],"plugin_contributors":[280285],"plugin_business_model":[],"class_list":["post-368584","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-cache","plugin_tags-object-cache","plugin_tags-page-cache","plugin_tags-performance","plugin_tags-redis","plugin_category-performance","plugin_category-security-and-spam-protection","plugin_contributors-zinndigital","plugin_committers-zinndigital"],"banners":{"banner":"https:\/\/ps.w.org\/zinn-cache\/assets\/banner-772x250.png?rev=3712814","banner_2x":"https:\/\/ps.w.org\/zinn-cache\/assets\/banner-1544x500.png?rev=3712814","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/zinn-cache\/assets\/icon-128x128.png?rev=3712814","icon_2x":"https:\/\/ps.w.org\/zinn-cache\/assets\/icon-256x256.png?rev=3712814","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/zinn-cache\/assets\/screenshot-1.png?rev=3713090","caption":"The Page cache tab: the full-page cache switch, how long a page stays cached, and whether signed-in visitors are ever served a cached page. The panel above the tabs says plainly when the server cannot cache \u2014 here, a server that is not LiteSpeed."},{"src":"https:\/\/ps.w.org\/zinn-cache\/assets\/screenshot-2.png?rev=3713090","caption":"The Purging tab: clear only the affected pages when content changes, clear everything after an update, and the tools to purge by hand or export your settings."},{"src":"https:\/\/ps.w.org\/zinn-cache\/assets\/screenshot-3.png?rev=3713090","caption":"The Exclusions tab: addresses, query parameters and cookies that are never cached, on top of the WordPress and WooCommerce defaults that always apply."},{"src":"https:\/\/ps.w.org\/zinn-cache\/assets\/screenshot-4.png?rev=3713090","caption":"Every screen is translated \u2014 here the Page cache tab in Arabic, right to left."}],"raw_content":"<!--section=description-->\n<p>Zinn\u00ae Cache connects a WordPress site to the server-side cache layer of the Zinn Digital\u00ae hosting platform. It is installed for you when a Zinn\u00ae site is provisioned. It runs on LiteSpeed Enterprise \/ OpenLiteSpeed hosts with the LSCache module, and degrades gracefully wherever a cache layer is absent \u2014 caching is a per-blueprint capability.<\/p>\n\n<p><strong>Which Zinn\u00ae cache plugin do I need?<\/strong> Exactly one of them:<\/p>\n\n<ul>\n<li><strong>Hosted with Zinn Digital\u00ae<\/strong> \u2014 this plugin. Your Zinn\u00ae server already runs the page cache; Zinn\u00ae Cache controls it and connects it to your dashboard.<\/li>\n<li><strong>Hosted anywhere else<\/strong> \u2014 install <strong>Zinn\u00ae Cache Engine<\/strong>, which brings its own caching engine.<\/li>\n<\/ul>\n\n<p>They are different plugins doing different jobs, not a free and a paid tier of one plugin. You do not need both.<\/p>\n\n<p><strong>What it does<\/strong><\/p>\n\n<ul>\n<li><strong>LSCache control.<\/strong> Stamps <code>X-LiteSpeed-Cache-Control<\/code> and <code>X-LiteSpeed-Tag<\/code> headers on cacheable front-end responses so the LiteSpeed web server can serve full pages without hitting PHP or MySQL. A configurable public cache lifetime is applied. If the third-party LiteSpeed Cache plugin is present, page caching is deferred to it instead.<\/li>\n<li><strong>Smart auto-purge.<\/strong> When content changes \u2014 a post or page is saved, trashed or deleted, a comment is added or moderated, a taxonomy term is edited, the theme is switched, a plugin is (de)activated, or WordPress\/plugins\/themes are updated \u2014 only the affected pages (and the listings they appear on) are purged, via targeted LiteSpeed cache tags. The plugin can also mirror each purge to a control panel over a signed webhook, but only when <code>ZINN_CACHE_PANEL_URL<\/code> is defined \u2014 and the Zinn Digital\u00ae platform does not set it today, so on a Zinn-hosted site purges happen on the server and are not mirrored anywhere.<\/li>\n<li><strong>Redis object cache.<\/strong> A one-click toggle installs a self-contained Redis object-cache drop-in (requires the phpredis extension), offloading repeated database reads. The plugin never overwrites another caching plugin's drop-in, and the drop-in falls back to an in-memory cache if Redis is unreachable, so the site keeps working.<\/li>\n<li><strong>Safe cache exclusions.<\/strong> Ships with sensible WordPress and WooCommerce\/Easy Digital Downloads defaults \u2014 cart, checkout, my-account, REST\/AJAX, preview, search, and any logged-in or session-cookie request are never cached. Extra path, query-key, and cookie-prefix rules can be added per site.<\/li>\n<\/ul>\n\n<p><strong>Remote purging<\/strong><\/p>\n\n<p>A REST endpoint, <code>POST \/wp-json\/zinn-cache\/v1\/purge<\/code>, purges everything, specific URLs, or specific tags. It accepts a logged-in administrator, or any caller holding the site's <code>ZINN_CACHE_PANEL_SECRET<\/code> who signs the request body with it (HMAC-SHA256) \u2014 so a deploy script or your own tooling can clear the cache. Your Zinn\u00ae dashboard does not call it today; there is no dashboard purge button for this plugin yet.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin can connect your site to Zinn Digital\u00ae (the hosting platform it is built for) so that\ncache purges can be mirrored to it and the Zinn\u00ae dashboard can show what changed on the site.<\/p>\n\n<p><strong>What is sent, and when<\/strong><\/p>\n\n<ul>\n<li><strong>Cache purges (only if <code>ZINN_CACHE_PANEL_URL<\/code> and <code>ZINN_CACHE_PANEL_SECRET<\/code> are defined).<\/strong>\nWhen content changes, the plugin posts the affected URLs and cache tags \u2014 no post content, no\nvisitor data \u2014 to the address in <code>ZINN_CACHE_PANEL_URL<\/code>. The request is signed with an HMAC-SHA256\nof the body using your site's own secret. Note: the Zinn Digital\u00ae platform does not define\n  ZINN_CACHE_PANEL_URL on the sites it hosts today, so on those sites nothing is sent.<\/li>\n<li><strong>Outbound link index (only if <code>ZINN_SITE_LINKS_URL<\/code> and <code>ZINN_CACHE_PANEL_SECRET<\/code> are defined).<\/strong>\nWhen a post is saved or removed, and on a daily pass, the plugin sends that post's <strong>title<\/strong>, its\n<strong>permalink<\/strong>, and the <strong>links found in its content<\/strong> so link placements can be tracked from your\nZinn\u00ae dashboard. This is post-derived data: titles and the URLs a post links to. The post body\nitself is never sent, and no visitor data is included.<\/li>\n<\/ul>\n\n<p><strong>When nothing is sent.<\/strong> The constants above are set by the Zinn\u00ae platform when it provisions\na site \u2014 except <code>ZINN_CACHE_PANEL_URL<\/code>, which it does not set today. On a site that is not hosted with Zinn Digital\u00ae none of them exist, and the plugin makes <strong>no\noutbound requests whatsoever<\/strong> \u2014 caching, exclusions and the object cache all work locally.<\/p>\n\n<p>Service terms: https:\/\/zinndigital.com\/legal\/terms\nPrivacy policy: https:\/\/zinndigital.com\/legal\/privacy<\/p>\n\n<ul>\n<li><strong>Support diagnostics (only when you press send).<\/strong> If you ask us for help, the plugin can send\na support report to <code>https:\/\/api.zinndigital.com\/v1\/connector\/diagnostics<\/code>. <strong>You are shown the\nexact payload first, already redacted, and nothing leaves your site until you press send.<\/strong>\nCredentials are excluded by declaration rather than by matching key names, and render as\n  [not sent \u2014 credential]. The plugin never sends this on its own initiative.<\/li>\n<\/ul>\n\n<h3>Translations<\/h3>\n\n<p><strong>Every string this plugin adds to your admin is translated into 57 languages<\/strong> \u2014 labels, notices,\nerrors and settings, not a subset. The catalogues are bundled in the plugin, so they work as soon\nas you set your site language; there is no separate language pack to install.<\/p>\n\n<p>Every user-visible string is complete in every one of the 53 languages WordPress can serve\ntoday:<\/p>\n\n<p>Amharic (am), Arabic (ar), Azerbaijani (az), Bulgarian (bg_BG), Bengali (Bangladesh)\n(bn_BD), Czech (cs_CZ), German (de_DE), Greek (el), Spanish (Spain) (es_ES), Persian\n(fa_IR), French (France) (fr_FR), Gujarati (gu), Hebrew (he_IL), Hindi (hi_IN), Croatian\n(hr), Hungarian (hu_HU), Armenian (hy), Indonesian (id_ID), Italian (it_IT), Japanese\n(ja), Georgian (ka_GE), Kazakh (kk), Khmer (km), Kannada (kn), Korean (ko_KR), Lao (lo),\nMalayalam (ml_IN), Mongolian (mn), Marathi (mr), Malay (ms_MY), Myanmar (Burmese)\n(my_MM), Nepali (ne_NP), Dutch (nl_NL), Panjabi (India) (pa_IN), Polish (pl_PL), Pashto\n(ps), Portuguese (Brazil) (pt_BR), Romanian (ro_RO), Russian (ru_RU), Sinhala (si_LK),\nAlbanian (sq), Serbian (sr_RS), Swahili (sw), Tamil (ta_IN), Telugu (te), Thai (th),\nTagalog (tl), Turkish (tr_TR), Ukrainian (uk), Urdu (ur), Uzbek (uz_UZ), Vietnamese\n(vi), Chinese (China) (zh_CN)<\/p>\n\n<p>A further 4 ship complete in the plugin \u2014 Hausa (ha), Somali (so_SO), Tajik (tg), Yoruba (yo) \u2014 but\nWordPress core does not currently provide a locale for them, so WordPress cannot load them.<\/p>\n\n<p>The catalogues are bundled rather than left to translate.wordpress.org because that site can only\noffer what volunteers have contributed, and a site administrator working in Amharic or Khmer would\notherwise read English indefinitely. They do not compete with community translations: where a\nWordPress language pack exists for this plugin, WordPress loads it ahead of the bundled catalogue,\nso a community translation always wins.<\/p>\n\n<h4>Right-to-left<\/h4>\n\n<p>Arabic, Persian, Hebrew, Pashto and Urdu are right-to-left. Every screen this plugin adds was\nrendered in a real WordPress install in each of those languages and checked, not assumed.<\/p>\n\n<h4>For translators<\/h4>\n\n<pre><code>languages\/ holds the `.pot` template plus a `.po`, `.mo` and `.l10n.php` for every language, so\n<\/code><\/pre>\n\n<p>corrections and new languages can be contributed directly.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>zinn-cache<\/code> folder to <code>\/wp-content\/plugins\/<\/code> (this is done automatically as part of the Zinn\u00ae deploy footprint).<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Go to <strong>Zinn Digital\u00ae \u2192 Cache<\/strong> to configure the full-page cache, object cache, auto-purge, and exclusions.<\/li>\n<\/ol>\n\n<p>Optionally define these constants in <code>wp-config.php<\/code> (set automatically on Zinn-hosted sites):<\/p>\n\n<ul>\n<li><code>ZINN_CACHE_PANEL_URL<\/code> and <code>ZINN_CACHE_PANEL_SECRET<\/code> \u2014 enable signed purge mirroring to the control plane.<\/li>\n<li><code>WP_REDIS_HOST<\/code>, <code>WP_REDIS_PORT<\/code>, <code>WP_REDIS_DATABASE<\/code>, <code>WP_REDIS_PASSWORD<\/code>, <code>WP_REDIS_PREFIX<\/code> \u2014 override the object-cache connection.<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20require%20litespeed%3F\"><h3>Does this require LiteSpeed?<\/h3><\/dt>\n<dd><p>Full-page caching requires a LiteSpeed web server (or the third-party LiteSpeed Cache plugin). On any other server nothing reads the cache headers, so pages are not cached \u2014 and the settings screen says so plainly rather than looking as if it works. Everything else (object cache, exclusions, and the signed purge endpoint) still works.<\/p><\/dd>\n<dt id=\"does%20it%20conflict%20with%20the%20litespeed%20cache%20plugin%3F\"><h3>Does it conflict with the LiteSpeed Cache plugin?<\/h3><\/dt>\n<dd><p>No. If the LiteSpeed Cache plugin is active, Zinn\u00ae Cache defers page caching to it and routes purges through its public actions.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20redis%20is%20unavailable%3F\"><h3>What happens if Redis is unavailable?<\/h3><\/dt>\n<dd><p>The object cache is optional. If the phpredis extension is missing the toggle is disabled with a notice; if Redis becomes unreachable at runtime, the drop-in serves from a per-request in-memory cache so the site never breaks.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.6<\/h4>\n\n<ul>\n<li>The Translations section no longer says the plugin has 56 user-visible strings. The plugin has grown to nearly three times that many, and every one of them is translated; the count was typed by hand and stopped being true as strings were added, so it is gone rather than corrected.<\/li>\n<\/ul>\n\n<h4>1.3.5<\/h4>\n\n<ul>\n<li>The plugin's description in your Plugins list no longer offers remote purge from your Zinn\u00ae dashboard or one-click admin login. Neither is part of this plugin: one-click login moved out in 1.3.2, and the dashboard does not send purges to it. It now names what the plugin does \u2014 smart auto-purge, a signed purge endpoint for your own tools, a Redis object-cache toggle and safe exclusions \u2014 in every language it ships.<\/li>\n<\/ul>\n\n<h4>1.3.4<\/h4>\n\n<ul>\n<li>The readme no longer describes one-click admin login, which moved out of this plugin in 1.3.2, and the settings are found under Zinn Digital\u00ae \u2192 Cache. Screenshots added for the WordPress.org listing. Tested up to: 7.1 \u2014 the major version, as WordPress.org requires.<\/li>\n<\/ul>\n\n<h4>1.3.3<\/h4>\n\n<ul>\n<li>Tested up to WordPress 7.1.1.<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>In a right-to-left admin language, the Zinn Digital\u00ae menu entry showed its trademark symbol on the wrong side of the name. The name is now isolated so it reads correctly in Arabic, Hebrew, Persian, Pashto and Urdu.<\/li>\n<li>Number fields on the settings screen are now wide enough to show the whole value. A long value \u2014 a page-cache lifetime of 604800 seconds, say \u2014 was cut off to its first few digits, so the setting looked wrong even when it was right.<\/li>\n<li>This readme no longer says cache purges are driven from your Zinn\u00ae dashboard. The purge endpoint in the plugin is real and works for an administrator or a caller holding the site's secret, but the platform does not yet send purges to it or receive purge mirrors from it, so the description said more than the product does.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>When somebody's access to a site is revoked in your Zinn\u00ae dashboard, the WordPress admin session they already had open now ends on their very next click. Before this release a one-click login that was already open kept working until WordPress ended it on its own \u2014 up to 48 hours \u2014 so removing a developer, an agency or a former member of staff did not take effect straight away for whoever still had a tab open.<\/li>\n<li>Only sessions that were opened from your Zinn\u00ae dashboard are ended. Your own WordPress logins, and anyone else's, are untouched.<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>The admin screens' styles and scripts are now enqueued through WordPress rather than printed into the page, so they can be dequeued, deferred or optimised by your site like any other asset \u2014 and they still work on a site whose security policy forbids inline code.<\/li>\n<li>The page-cache decision no longer leaves an output buffer open for WordPress to unwind at the end of the request; the plugin closes its own and never touches anybody else's.<\/li>\n<li>One-click login from your Zinn\u00ae dashboard now claims its single-use token atomically, so the same token can never be accepted twice even on a site with no object cache.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Translations: every string this plugin's admin shows is now translated in every bundled language. A few strings the machine translator refused were shipping in English; they are now translated by hand.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Hardening: a settings rule can no longer be mistaken for a PHP function with the same name. The same shared settings code is what stopped Zinn\u00ae Translate saving its settings. Nothing about how this plugin behaves changes.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<p>Settings moved under the one Zinn Digital\u00ae menu, with per-post-type cache lifetimes, a browser-cache lifetime, a signed-in-visitor rule, a purge-on-comment switch, a Redis password field, and a status panel that tells you when the server is not LiteSpeed and the cache is therefore doing nothing.<\/p>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Fixed: the plugin told the update service it was version 1.0.0, so a site already on the latest version was offered the same version again on every check and re-installed it.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Fixed: changing the Site Title, tagline, front-page, permalink, posts-per-page, widget or theme settings, or saving a menu, now purges the whole page cache. Previously every cached page kept the old value until it expired.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added the Zinn\u00ae panel: links to Zinn Digital\u00ae hosting, the Zinn\u00ae marketplace, Zinn Hub\u00ae and this plugin's user guide, from inside the WordPress admin.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: LSCache control, smart tag-based auto-purge, Redis object-cache toggle, safe cache exclusions, and a signed remote-purge REST endpoint.<\/li>\n<\/ul>","raw_excerpt":"Cache control for sites hosted with Zinn Digital\u00ae \u2014 smart auto-purge, a signed purge endpoint, a Redis object cache and safe exclusions.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/368584","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=368584"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/zinndigital"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=368584"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=368584"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=368584"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=368584"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=368584"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=368584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}