{"id":181839,"date":"2024-02-15T17:56:06","date_gmt":"2024-02-15T17:56:06","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/zmp-ai-assistant\/"},"modified":"2026-09-16T14:06:11","modified_gmt":"2026-09-16T14:06:11","slug":"zmp-ai-assistant","status":"publish","type":"plugin","link":"https:\/\/fur.wordpress.org\/plugins\/zmp-ai-assistant\/","author":15610959,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"3.0.3","stable_tag":"3.0.3","tested":"7.1.1","requires":"5.2","requires_php":"7.0","requires_plugins":null,"header_name":"ZMP AI Assistant","header_author":"ZuestMedia","header_description":"This plugin helps webmasters to create content with artificial intelligence support from GPT-3","assets_banners_color":"f9f9f9","last_updated":"2026-09-16 14:06:11","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/zuestmedia.com\/ai-assistant\/","header_author_uri":"https:\/\/zuestmedia.com\/","rating":0,"author_block_rating":0,"active_installs":10,"downloads":3407,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","faq","changelog"],"tags":{"1.0.4":{"tag":"1.0.4","author":"zuestmedia","date":"2024-02-15 17:55:33","revision":3036508},"1.0.5":{"tag":"1.0.5","author":"zuestmedia","date":"2024-04-25 07:30:56","revision":3076807},"1.0.6":{"tag":"1.0.6","author":"zuestmedia","date":"2024-06-09 18:13:37","revision":3100139},"1.0.7":{"tag":"1.0.7","author":"zuestmedia","date":"2024-07-17 07:43:17","revision":3120008},"1.0.8":{"tag":"1.0.8","author":"zuestmedia","date":"2024-07-24 09:24:43","revision":3124466},"1.1.0":{"tag":"1.1.0","author":"zuestmedia","date":"2024-08-16 17:48:10","revision":3136760},"1.1.1":{"tag":"1.1.1","author":"zuestmedia","date":"2024-10-29 06:50:14","revision":3177702},"2.0.1":{"tag":"2.0.1","author":"zuestmedia","date":"2025-09-12 12:28:21","revision":3360516},"3.0.3":{"tag":"3.0.3","author":"zuestmedia","date":"2026-09-16 14:06:11","revision":3698735}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3036508,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3036508,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3036508,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3036508,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.4","1.0.5","1.0.6","1.0.7","1.0.8","1.1.0","1.1.1","2.0.1","3.0.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3036508,"resolution":"1","location":"assets","locale":"","width":1100,"height":720},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3036508,"resolution":"2","location":"assets","locale":"","width":1100,"height":720},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3036508,"resolution":"3","location":"assets","locale":"","width":1202,"height":1504}},"screenshots":[]},"plugin_section":[],"plugin_tags":[217673,281052,194533,229690],"plugin_category":[],"plugin_contributors":[147853],"plugin_business_model":[],"class_list":["post-181839","plugin","type-plugin","status-publish","hentry","plugin_tags-chat-gpt","plugin_tags-gpt-image","plugin_tags-openai","plugin_tags-zmplugin","plugin_contributors-zuestmedia","plugin_committers-zuestmedia"],"banners":{"banner":"https:\/\/ps.w.org\/zmp-ai-assistant\/assets\/banner-772x250.png?rev=3036508","banner_2x":"https:\/\/ps.w.org\/zmp-ai-assistant\/assets\/banner-1544x500.png?rev=3036508","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/zmp-ai-assistant\/assets\/icon-128x128.png?rev=3036508","icon_2x":"https:\/\/ps.w.org\/zmp-ai-assistant\/assets\/icon-256x256.png?rev=3036508","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/zmp-ai-assistant\/assets\/screenshot-1.png?rev=3036508","caption":""},{"src":"https:\/\/ps.w.org\/zmp-ai-assistant\/assets\/screenshot-2.png?rev=3036508","caption":""},{"src":"https:\/\/ps.w.org\/zmp-ai-assistant\/assets\/screenshot-3.png?rev=3036508","caption":""}],"raw_content":"<!--section=description-->\n<p><a href=\"https:\/\/zuestmedia.com\/ai-assistant\/\">AI Assistant<\/a> brings OpenAI text and image models into the WordPress post and page editor. Draft articles, improve existing text, create summaries and FAQs, translate content, or generate images from a description.<\/p>\n\n<p>AI Assistant is an extension of <a href=\"https:\/\/wordpress.org\/plugins\/zmplugin\/\">ZMPlugin<\/a>. ZMPlugin must be installed and active; AI Assistant does not work as a standalone plugin. You also need your own OpenAI API key and access to the models you want to use. API requests use your configured OpenAI account.<\/p>\n\n<h4>Using the assistant<\/h4>\n\n<p>Open AI Assistant from the Classic Editor or Gutenberg editor. The same chat window handles text, attachments and generated images. It is available to logged-in users who can edit posts, including authors; file and image actions additionally require permission to upload files.<\/p>\n\n<p>Type your request and press Enter or click Send. Use Shift+Enter for a new line. Responses appear above the input field, with text streamed when supported by the server. You can copy selected response text or insert it into the post title or content. Results are not published automatically.<\/p>\n\n<p>Open the chat settings to choose a model:<\/p>\n\n<ul>\n<li>Chat models write and discuss text. Compatible models can also use attached images or PDFs as input.<\/li>\n<li>Image models create or edit images. Select an image model and send your image request. Use Edit this image on a result to reuse it for editing, or explicitly save a generated image to the media library.<\/li>\n<\/ul>\n\n<p>The selector lists models supported by the plugin and available to your configured API project. It does not automatically switch between chat and image models. Settings adapt to the selection: reasoning effort for supported chat models, or image size and quality for image models. Automatic uses the API default. Defaults can also be set on the plugin settings page.<\/p>\n\n<p>Attach up to four PNG, JPEG, WebP or PDF files per message, with a maximum of 5 MB per attached input file. PDF input requires a compatible chat model; image models accept image inputs. Selecting a file alone does not upload it. Files are sent when you submit the request.<\/p>\n\n<h4>Reusable templates<\/h4>\n\n<p>Templates save a prompt and its form settings for repeated tasks. For example, create one template for article summaries and another for translating product descriptions. Loading a template fills the form; review the prompt before sending it.<\/p>\n\n<p>Variables insert data from the current post when a template is loaded. They read existing post data; they do not generate or update those fields themselves.<\/p>\n\n<ul>\n<li><code>[[title]]<\/code> - the post title.<\/li>\n<li><code>[[content]]<\/code> - the post content.<\/li>\n<li><code>[[excerpt]]<\/code> - the post excerpt, when available.<\/li>\n<li><code>[[tax_XXX]]<\/code> - names of terms assigned to a taxonomy. Replace XXX with its slug, for example <code>[[tax_category]]<\/code> or <code>[[tax_post_tag]]<\/code>.<\/li>\n<li><code>[[postmeta_XXX]]<\/code> - a permitted custom field value. Replace XXX with the meta key, for example <code>[[postmeta_product_name]]<\/code>. Protected fields are excluded by default; array or multiple-value fields are not supported by the standard template handler.<\/li>\n<\/ul>\n\n<p>Example prompt:<\/p>\n\n<p>Summarize the following article in three sentences. Title: [[title]] Content: [[content]]<\/p>\n\n<p>Variables use the post data available to WordPress when the template loads; save your post changes before loading a template if those changes should be included. Unavailable values may leave placeholders unchanged. Check the filled prompt before sending or saving it as a template.<\/p>\n\n<h4>Editing and deleting templates<\/h4>\n\n<p>Open Edit template beside the template selector in the post editor, or Edit in the template list on the plugin settings page. Both open the same editor with the template name, raw prompt and model settings. Click a variable in the sidebar to insert it at the cursor. Variables remain unchanged while editing; they are filled only when applying the template to a post.<\/p>\n\n<p>Use New template to start a reusable prompt. Save updates your template, including its name and settings; Cancel discards your changes. If another window changed the template in the meantime, reopen it before saving. Templates can be deleted from this editor or the settings list.<\/p>\n\n<p>Templates remain shared for use, but only their creator can edit, rename or delete them. Older templates without a recorded creator are assigned to the administrator with the lowest WordPress user ID on this site. Other users can view their raw contents. The shared template storage is limited to 100 templates and 1 MB; each prompt is limited to 20,000 bytes.<\/p>\n\n<h3>Privacy Notes<\/h3>\n\n<h4>Data sent to OpenAI<\/h4>\n\n<p>When you submit a request, the plugin sends your prompt, system instructions, relevant recent conversation context and any needed attachments through your WordPress server to OpenAI. Post data inserted through template variables becomes part of that prompt. The API key authenticates these server-side requests; the chat browser client does not receive it.<\/p>\n\n<p>The implemented OpenAI interfaces are:<\/p>\n\n<ul>\n<li><code>GET https:\/\/api.openai.com\/v1\/models<\/code> - retrieve available models; this list is cached.<\/li>\n<li><code>POST https:\/\/api.openai.com\/v1\/responses<\/code> - text chat and compatible image\/PDF inputs.<\/li>\n<li><code>POST https:\/\/api.openai.com\/v1\/chat\/completions<\/code> - the text-chat compatibility path.<\/li>\n<li><code>POST https:\/\/api.openai.com\/v1\/images\/generations<\/code> - generate images.<\/li>\n<li><code>POST https:\/\/api.openai.com\/v1\/images\/edits<\/code> - edit images using supplied image data.<\/li>\n<\/ul>\n\n<p>Attachments are included in requests; this implementation does not upload them to OpenAI's separate Files API. The model list can be retrieved when the editor or settings need it, without submitting a chat message.<\/p>\n\n<h4>Storage on your website<\/h4>\n\n<p>The current chat, generated image previews and attachments are held in the browser page's memory. Closing the assistant modal keeps that context. Resetting the chat, reloading or leaving the editor page discards it. There is no saved conversation archive; older context can also be dropped to keep memory usage bounded.<\/p>\n\n<p>The plugin processes chat and attachment data on the server during each request, but does not persist them as chat records or preview files. It creates only a temporary per-user processing lock. Explicitly saved templates, settings and API credentials remain in the WordPress database. Saving an image to the media library creates a normal WordPress attachment, which may be publicly accessible.<\/p>\n\n<p>When WordPress debug logging is enabled, request metadata such as model, status, timing and usage may be logged. The plugin's request logger excludes prompts, generated text, attachment contents and API credentials. Hosting infrastructure or other plugins may have separate logging and buffering behavior.<\/p>\n\n<h4>OpenAI data handling<\/h4>\n\n<p>The plugin sends <code>store: false<\/code> for Responses and Chat Completions requests. This does not guarantee that OpenAI retains no data: provider retention and monitoring are governed by your account settings and OpenAI's policies. Clearing the browser chat does not delete data already sent to OpenAI. See <a href=\"https:\/\/developers.openai.com\/api\/docs\/guides\/your-data\">OpenAI API data controls<\/a> and <a href=\"https:\/\/openai.com\/policies\/\">OpenAI terms and policies<\/a>.<\/p>\n\n<h3>Resources<\/h3>\n\n<p>Learn more about ZuestMedia WordPress <a href=\"https:\/\/zuestmedia.com\/themes\/\">themes<\/a> and <a href=\"https:\/\/zuestmedia.com\/plugins\/\">plugins<\/a>.<\/p>\n\n<p>If you have any questions or need help, visit the <a href=\"https:\/\/zuestmedia.com\/doc\/ai-assistant-documentation\/\">AI Assistant documentation<\/a>.<\/p>\n\n<p>You can also find us on <a href=\"https:\/\/github.com\/zuestmedia\/\">Github<\/a>!<\/p>\n\n<h3>Copyright<\/h3>\n\n<p>ZMP AI Assistant WordPress Plugin, Copyright 2024 zuestmedia.com\nZMP AI Assistant is distributed under the terms of the GNU GPL<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20to%20install%20ai%20assistant%3F\"><h3>How to install AI Assistant?<\/h3><\/dt>\n<dd><p>To install AI Assistant, go to Dashboard &gt;&gt; Plugins &gt;&gt; Add new. Then enter \"AI Assistant\" in the search field, click on install and activate.<\/p><\/dd>\n<dt id=\"does%20the%20ai%20assistant%20work%20as%20standalone%3F\"><h3>Does the AI Assistant work as standalone?<\/h3><\/dt>\n<dd><p>No. Our basic plugin <a href=\"https:\/\/wordpress.org\/plugins\/zmplugin\/\">ZMPlugin<\/a> is required so that the AI Assistant can be used. The AI Assistant plugin is an extension of ZMPlugin.<\/p><\/dd>\n<dt id=\"is%20the%20ai%20assistant%20plugin%20free%20of%20charge%3F\"><h3>Is the AI Assistant plugin free of charge?<\/h3><\/dt>\n<dd><p>Yes AI Assistant is completly free and open source, but an API key from Open AI is required to use the AI Assistant WordPress plugin.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>3.0.3<\/h4>\n\n<ul>\n<li>Update: Translations de_DE<\/li>\n<\/ul>\n\n<h4>3.0.2<\/h4>\n\n<ul>\n<li>New: Add a shared template editor in the post editor and plugin settings, with name, raw prompt, clickable variables and model settings.<\/li>\n<li>New: Allow creators to update, rename and delete their templates while keeping templates shared for use. Assign older templates to the site's administrator with the lowest user ID.<\/li>\n<li>Update: Protect template changes with ownership checks, revision conflict detection and bounded storage in the existing WordPress option.<\/li>\n<li>Fix: Keep template editing inside the existing chat modal to avoid competing focus handlers; preserve the current chat when saving or cancelling.<\/li>\n<li>Update: Display templates in a table on the settings page, with editing actions for owned templates and read-only viewing for others.<\/li>\n<li>Fix: Rename the default template choice to \"No Template\" and disable editing when no template is selected, including after reset or a chat request.<\/li>\n<li>Update: Make additional PHP and JavaScript interface labels, status messages and errors translatable through WordPress; update the translation catalog and include JavaScript translation files.<\/li>\n<li>Update: Use consistent translated image size and quality labels across chat, template and admin settings.<\/li>\n<li>Update: Clarify the readme's usage instructions, template variables, privacy information and required ZMPlugin dependency.<\/li>\n<li>Update: Extend automated checks for template ownership, editing, modal focus and disabled actions.<\/li>\n<li>Update: tested up to 7.1<\/li>\n<\/ul>\n\n<h4>3.0.1<\/h4>\n\n<ul>\n<li>Update: Keep chat history and image\/PDF attachments only in browser page memory; discard on reset or navigation.<\/li>\n<li>Fix: Validate browser context and signed generated images without server preview storage.<\/li>\n<li>Update: Default to GPT-5.6 Luna and Automatic image size\/quality across settings and API adapters.<\/li>\n<li>Fix: Protect post-meta placeholders and serialize active requests without durable request\/media markers.<\/li>\n<li>Fix: Check fileinfo before image generation; preserve omitted defaults when saving settings.<\/li>\n<li>Update: Reduce both forms to model\/reasoning or model\/image size\/quality.<\/li>\n<li>Update: Group chat and current GPT Image models in one selector; route image creation and editing directly to the Image API.<\/li>\n<li>Fix: Match visible settings to the selected model in both forms; remove the separate action switch.<\/li>\n<li>Update: Rename the custom chat controller to chat.js.<\/li>\n<li>New: Shared text\/image composer with private image\/PDF attachments and inline image results.<\/li>\n<li>New: Follow-up image editing, explicit media import and bounded browser attachment memory.<\/li>\n<li>Update: Documented PHP\/JS classes and functions, consistent formatting and offline DOM tests.<\/li>\n<li>Update: See docs\/multimodal-chat.md for usage, architecture and staging acceptance checks.<\/li>\n<\/ul>\n\n<h4>3.0.0<\/h4>\n\n<ul>\n<li>Update: Default to Automatic output tokens (empty); allow custom limits without hardcoded per-model ceilings.<\/li>\n<li>Fix: Enable settings according to model and endpoint support; omit neutral or unsupported API parameters.<\/li>\n<li>Update: Include current GPT-5.4, GPT-5.5, GPT-5.6 and GPT-6 chat model families in capability filtering.<\/li>\n<li>New: Responses API and POST REST streaming with Stop and partial-response states.<\/li>\n<li>Fix: Endpoint-specific token parameters, decimal validation and explicit model capabilities.<\/li>\n<li>Update: User-scoped conversation expiry, request deduplication and capability checks.<\/li>\n<li>Update: GPT Image PNG generation and token-based media import replace DALL-E 3.<\/li>\n<li>Update: See docs\/modernization.md for contracts, migration notes and pending staging checks.<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Fix: Load ErrorMenu if ZMPlugin is not installed or not up to date (because fo new actions)<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Update: Default Modell is gpt-4.1<\/li>\n<li>Update: tested up to 6.8<\/li>\n<li>Update: readme.txt<\/li>\n<li>Fix: action loading order: _load_textdomain_just_in_time; initialising later!<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Update: tested up to 6.7<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Fix: Undefined variable $models_filtered<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Update: .pot file added<\/li>\n<li>Update: translations<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Update: Tested up to WP 6.6<\/li>\n<li>Update: Readme Text<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Fix: Errorpage displayname<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Update: Tested up to WP 6.5<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Fix: sanitization and nonce issues solved<\/li>\n<li>Fix: Style &amp; Design small fixes<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>New: System Message Setting<\/li>\n<li>Update: Save conversations temporary to send complete messages array to api and conversation view<\/li>\n<li>Update: Split view into messages prompt and chat conversation area<\/li>\n<li>Update: Order &amp; Style of AIForm<\/li>\n<li>Update: Models filtered<\/li>\n<li>Fix: Version to wp_enqueue_script<\/li>\n<li>Fix: Form reset fixes<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix: Sanitizing &amp; validating post data<\/li>\n<li>Fix: Nonce form inputs are defined in js (ajax calls)<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Update: added nonce to ajax post calls<\/li>\n<li>Update: restriction to load functions only in admin panel<\/li>\n<li>Update: added license info into main plugin-file<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Update: Ready for release on wordrpess.org<\/li>\n<li>Update: Readme text<\/li>\n<li>Update: Replaced legacy completions API with actual chat completions API<\/li>\n<li>Update: Default model settings change to gpt-4<\/li>\n<li>Update: Image API now with gpt-image<\/li>\n<li>Remove: Legacy edit API<\/li>\n<\/ul>\n\n<h4>0.9.4<\/h4>\n\n<ul>\n<li>Fix: Style Error in Form<\/li>\n<\/ul>\n\n<h4>0.9.3<\/h4>\n\n<ul>\n<li>Update: escaping &amp; translations added<\/li>\n<li>Update: CI\/CD Routines<\/li>\n<li>Fix: Minor bug fixes<\/li>\n<\/ul>\n\n<h4>0.9.2<\/h4>\n\n<ul>\n<li>Update: AIForm finished<\/li>\n<li>New: PrepareTemplate to filter and prepare form inputs and variables<\/li>\n<li>New: Copy and paste selection to title or editor<\/li>\n<li>New: Upload generated images to media library<\/li>\n<li>Fix: Settings Form finished<\/li>\n<\/ul>\n\n<h4>0.9.1<\/h4>\n\n<ul>\n<li>Update: All checks integrated, next step -&gt; prepare settings array eg prompt with varialbes like <strong>title<\/strong> or <strong>postmeta<\/strong> usw...<\/li>\n<\/ul>\n\n<h4>0.9.0<\/h4>\n\n<ul>\n<li>Initial release of ZMP AI Assistant<\/li>\n<\/ul>\n\n<h4>0.8.4<\/h4>\n\n<ul>\n<li>Fix: credential check was wrong...<\/li>\n<\/ul>\n\n<h4>0.8.3<\/h4>\n\n<ul>\n<li>Update: Form and APIS are fully functional, still needs some error checks and animations to finish<\/li>\n<\/ul>\n\n<h4>0.8.2<\/h4>\n\n<ul>\n<li>Update: Form is functional and has all needed settings except \"stop\"<\/li>\n<\/ul>\n\n<h4>0.8.1<\/h4>\n\n<ul>\n<li>New: Connected to GPT-3 API<\/li>\n<\/ul>\n\n<h4>0.8.0<\/h4>\n\n<ul>\n<li>Initial beta release of ZMP AI Assistant<\/li>\n<\/ul>","raw_excerpt":"Write, revise and translate content, use post data in reusable prompts, and create or edit images directly in the WordPress editor.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fur.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/181839","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fur.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fur.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fur.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=181839"}],"author":[{"embeddable":true,"href":"https:\/\/fur.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/zuestmedia"}],"wp:attachment":[{"href":"https:\/\/fur.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=181839"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fur.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=181839"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fur.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=181839"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fur.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=181839"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fur.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=181839"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fur.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=181839"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}