{"id":316757,"date":"2026-07-13T10:52:17","date_gmt":"2026-07-13T10:52:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/roobely-advanced-blocks\/"},"modified":"2026-07-13T10:51:50","modified_gmt":"2026-07-13T10:51:50","slug":"roobely","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/roobely\/","author":12245724,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.6","stable_tag":"1.0.6","tested":"7.0.1","requires":"6.1","requires_php":"7.4","requires_plugins":null,"header_name":"Roobely \u2013 Advanced Blocks","header_author":"Tiger12","header_description":"Roobely is a modern WordPress block plugin designed for performance, flexibility, and a clean editing experience. A lightweight collection of advanced blocks for the Block Editor.","assets_banners_color":"1d3557","last_updated":"2026-07-13 10:51:50","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/roobely.com","header_plugin_uri":"https:\/\/roobely.com\/pricing\/","header_author_uri":"https:\/\/roobely.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":22,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.6":{"tag":"1.0.6","author":"gteigland","date":"2026-07-13 10:51:50"}},"upgrade_notice":{"1.0.1":""},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3605888,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3605888,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3605888,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3605888,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3605888,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"roobely\/postgrid":{"name":"roobely\/postgrid","title":"Post Grid"},"roobely\/accordion":{"name":"roobely\/accordion","title":"Accordion"},"roobely\/advancedlist":{"name":"roobely\/advancedlist","title":"Advanced List"},"roobely\/animatedheadline":{"name":"roobely\/animatedheadline","title":"Animated Headline"},"roobely\/button":{"name":"roobely\/button","title":"Button"},"roobely\/buttongroup":{"name":"roobely\/buttongroup","title":"Button Group"},"roobely\/contactform":{"name":"roobely\/contactform","title":"Contact Form"},"roobely\/counter":{"name":"roobely\/counter","title":"Counter"},"roobely\/divider":{"name":"roobely\/divider","title":"Divider"},"roobely\/heading":{"name":"roobely\/heading","title":"Heading"},"roobely\/icon":{"name":"roobely\/icon","title":"Icon"},"roobely\/imagecomparison":{"name":"roobely\/imagecomparison","title":"Image Comparison"},"roobely\/infobox":{"name":"roobely\/infobox","title":"Info Box"},"roobely\/map":{"name":"roobely\/map","title":"Google Map"},"roobely\/pieprogress":{"name":"roobely\/pieprogress","title":"Pie Progress"},"roobely\/pricing":{"name":"roobely\/pricing","title":"Pricing"},"roobely\/progressbar":{"name":"roobely\/progressbar","title":"Progress Bar"},"roobely\/row":{"name":"roobely\/row","title":"Row"},"roobely\/column":{"name":"roobely\/column","title":"Column"},"roobely\/table-of-contents":{"name":"roobely\/table-of-contents","title":"Table of Contents"},"roobely\/tabs":{"name":"roobely\/tabs","title":"Tabs"},"roobely\/tab":{"name":"roobely\/tab","title":"Tab"},"roobely\/team":{"name":"roobely\/team","title":"Team"},"roobely\/testimonial":{"name":"roobely\/testimonial","title":"Testimonial"},"roobely\/text":{"name":"roobely\/text","title":"Advanced Text"},"roobely\/timeline":{"name":"roobely\/timeline","title":"Timeline"},"roobely\/videopopup":{"name":"roobely\/videopopup","title":"Video Popup"},"roobely\/wrapper":{"name":"roobely\/wrapper","title":"Block Wrapper"}},"tagged_versions":["1.0.6"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[4121,179451,148076,1084,606],"plugin_category":[43],"plugin_contributors":[271341,271340],"plugin_business_model":[],"class_list":["post-316757","plugin","type-plugin","status-publish","hentry","plugin_tags-blocks","plugin_tags-custom-blocks","plugin_tags-gutenberg","plugin_tags-page-builder","plugin_tags-responsive","plugin_category-customization","plugin_contributors-gteigland","plugin_contributors-tiger12","plugin_committers-gteigland"],"banners":{"banner":"https:\/\/ps.w.org\/roobely\/assets\/banner-772x250.png?rev=3605888","banner_2x":"https:\/\/ps.w.org\/roobely\/assets\/banner-1544x500.png?rev=3605888","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/roobely\/assets\/icon.svg?rev=3605888","icon":"https:\/\/ps.w.org\/roobely\/assets\/icon.svg?rev=3605888","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Roobely is a modern WordPress block plugin designed for performance, flexibility, and a clean editing experience.<\/p>\n\n<p>It provides a collection of advanced blocks and design tools that help you build responsive websites directly inside the WordPress block editor.<\/p>\n\n<p>Roobely focuses on:<\/p>\n\n<ul>\n<li>Faster editor performance<\/li>\n<li>Lightweight asset loading<\/li>\n<li>Clean and maintainable architecture<\/li>\n<li>Responsive design controls<\/li>\n<li>Better compatibility with modern themes<\/li>\n<li>Optimized frontend performance<\/li>\n<\/ul>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Advanced block collection<\/li>\n<li>Responsive layout controls<\/li>\n<li>Typography and spacing customization<\/li>\n<li>Gradient, shadow, and animation support<\/li>\n<li>Lightweight frontend assets<\/li>\n<li>Flexible design system<\/li>\n<li>Compatible with modern WordPress themes<\/li>\n<li>Performance-focused architecture<\/li>\n<\/ul>\n\n<h3>Included Blocks<\/h3>\n\n<ul>\n<li>Row &amp; Column<\/li>\n<li>Heading<\/li>\n<li>Advanced Text<\/li>\n<li>Button<\/li>\n<li>Button Group<\/li>\n<li>Icon<\/li>\n<li>Icon List<\/li>\n<li>Image<\/li>\n<li>Divider<\/li>\n<li>Info Box<\/li>\n<li>Pricing Table<\/li>\n<li>Team Member<\/li>\n<li>Testimonial<\/li>\n<li>Counter<\/li>\n<li>Progress Bar<\/li>\n<li>Tabs<\/li>\n<li>Accordion<\/li>\n<li>Social Icons<\/li>\n<li>Video Popup<\/li>\n<li>Google Map<\/li>\n<li>Post Grid<\/li>\n<li>Timeline<\/li>\n<li>Contact Form<\/li>\n<li>Block Wrapper<\/li>\n<\/ul>\n\n<h3>Pro Features<\/h3>\n\n<p>Roobely Pro will include:<\/p>\n\n<ul>\n<li>WooCommerce blocks<\/li>\n<li>Forms builder<\/li>\n<li>Carousel blocks<\/li>\n<li>Additional premium design components<\/li>\n<li>Migration tools<\/li>\n<li>Extended customization options<\/li>\n<\/ul>\n\n<p>More information: https:\/\/roobely.com<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to several external services to provide additional functionality. All services are optional and require explicit user configuration.<\/p>\n\n<h3>1. Google Fonts API<\/h3>\n\n<ul>\n<li><strong>Purpose<\/strong>: Loads custom fonts for better typography in Roobely blocks<\/li>\n<li><strong>Data Sent<\/strong>: Font family names selected by the user in block settings<\/li>\n<li><strong>When<\/strong>: When a Roobely block uses custom fonts AND the user enables Google Fonts in plugin settings (OFF by default)<\/li>\n<li><strong>Service Provider<\/strong>: Google LLC<\/li>\n<li><strong>Privacy Policy<\/strong>: https:\/\/policies.google.com\/privacy<\/li>\n<li><strong>Terms of Service<\/strong>: https:\/\/developers.google.com\/fonts\/terms<\/li>\n<\/ul>\n\n<h3>2. Google reCAPTCHA<\/h3>\n\n<ul>\n<li><strong>Purpose<\/strong>: Prevents spam submissions in Roobely Contact Form blocks<\/li>\n<li><strong>Data Sent<\/strong>: User's interaction with the contact form, CAPTCHA response token, page URL<\/li>\n<li><strong>When<\/strong>: When the Contact Form block is configured with reCAPTCHA enabled<\/li>\n<li><strong>Service Provider<\/strong>: Google LLC<\/li>\n<li><strong>Privacy Policy<\/strong>: https:\/\/policies.google.com\/privacy<\/li>\n<li><strong>Terms of Service<\/strong>: https:\/\/policies.google.com\/terms<\/li>\n<\/ul>\n\n<h3>3. Google Maps API<\/h3>\n\n<ul>\n<li><strong>Purpose<\/strong>: Displays interactive maps in the Map block<\/li>\n<li><strong>Data Sent<\/strong>: Location data, place IDs, map coordinates, API key (provided by site owner)<\/li>\n<li><strong>When<\/strong>: When the Map block is added to a page and configured with a Google Maps API key<\/li>\n<li><strong>Service Provider<\/strong>: Google LLC<\/li>\n<li><strong>Privacy Policy<\/strong>: https:\/\/policies.google.com\/privacy<\/li>\n<li><strong>Terms of Service<\/strong>: https:\/\/cloud.google.com\/maps-platform\/terms<\/li>\n<\/ul>\n\n<h3>4. Roobely Licensing Server (Pro Version Only)<\/h3>\n\n<ul>\n<li><strong>Purpose<\/strong>: Validates Pro license keys for premium features<\/li>\n<li><strong>Data Sent<\/strong>: License key, site URL, product ID<\/li>\n<li><strong>When<\/strong>: During license activation and periodic validation checks<\/li>\n<li><strong>Service Provider<\/strong>: Roobely (tiger12)<\/li>\n<li><strong>Privacy Policy<\/strong>: https:\/\/roobely.com\/privacy-policy<\/li>\n<li><strong>Terms of Service<\/strong>: https:\/\/roobely.com\/terms<\/li>\n<\/ul>\n\n<h3>5. YouTube<\/h3>\n\n<p>This plugin connects to YouTube's embedding service to display video content in the Video Popup block.<\/p>\n\n<p>When a user loads a page containing the Video Popup block, the plugin:\n- Builds an embedded YouTube player URL\n- Loads the YouTube iframe player API\n- The visitor's browser connects to YouTube and may send standard request data such as IP address, browser details, cookies, and the page URL\/referrer according to Google's policies<\/p>\n\n<p>This service is provided by YouTube (Google):\n- Terms of Service: https:\/\/www.youtube.com\/t\/terms\n- Privacy Policy: https:\/\/policies.google.com\/privacy<\/p>\n\n<h3>6. Vimeo<\/h3>\n\n<p>This plugin connects to Vimeo's embedding service to display video content in the Video Popup block when a Vimeo URL is used.<\/p>\n\n<p>When a user loads a page containing the Video Popup block configured with a Vimeo video, the plugin:\n- Builds an embedded Vimeo player URL (player.vimeo.com)\n- The visitor's browser connects to Vimeo and may send standard request data such as IP address, browser details, cookies, and the page URL\/referrer according to Vimeo's policies<\/p>\n\n<p>This service is provided by Vimeo, Inc.:\n- Terms of Service: https:\/\/vimeo.com\/terms\n- Privacy Policy: https:\/\/vimeo.com\/privacy<\/p>\n\n<h3>7. Mailchimp<\/h3>\n\n<p>This plugin optionally connects to Mailchimp to submit form data.<\/p>\n\n<p>When: When a contact form block is configured with Mailchimp as the form action\nData Sent: Form field values submitted to Mailchimp's form endpoint\nService Provider: Mailchimp (The Rocket Science Group)\nPrivacy Policy: https:\/\/mailchimp.com\/legal\/privacy\/\nTerms of Service: https:\/\/mailchimp.com\/legal\/terms\/<\/p>\n\n<h3>Source Code<\/h3>\n\n<p>This plugin ships with compiled and minified JavaScript assets for best performance and smaller download size.<\/p>\n\n<p>The complete original unminified source code (React components, build tools, and all development files) used to generate these assets is publicly available at:<\/p>\n\n<p><strong>https:\/\/bitbucket.org\/tiger12\/roobely<\/strong><\/p>\n\n<p><strong>Build Instructions:<\/strong><\/p>\n\n<p>cd assets\/reactjs\nnpm install\nnpm run build<\/p>\n\n<p>You can browse the full unminified source code (including the React source) directly in the public repository above (no login required).<\/p>\n\n<p><strong>Note:<\/strong> The minified <code>.js<\/code> files included in this plugin were built from the sources in the repository linked above.<\/p>\n\n<p><strong>Primary source location:<\/strong> <code>assets\/reactjs\/src\/<\/code> in the repository above contains the primary, hand-edited React source code for this plugin. Files such as <code>assets\/js\/roobely.js<\/code> are generated webpack bundles produced from that source via the build instructions above, not source files themselves.<\/p>\n\n<p><strong>Minified asset sources<\/strong><\/p>\n\n<p>In the public Bitbucket repository (these unminified <code>.js<\/code> files are not included in the plugin ZIP; they are only available in the repository linked above):<\/p>\n\n<ul>\n<li>assets\/js\/roobely.min.js \u2192 assets\/js\/roobely.js<\/li>\n<li>assets\/js\/license-activation.min.js \u2192 assets\/js\/license-activation.js<\/li>\n<li>assets\/js\/common-script.min.js \u2192 assets\/js\/common-script.js<\/li>\n<li>assets\/js\/custom-roobely.min.js \u2192 assets\/js\/custom-roobely.js<\/li>\n<li>assets\/js\/htmlDecoder.min.js \u2192 assets\/js\/htmlDecoder.js<\/li>\n<li>assets\/js\/interaction.min.js \u2192 assets\/js\/interaction.js<\/li>\n<li>assets\/js\/jquery.animatedheadline.min.js \u2192 assets\/js\/jquery.animatedheadline.js<\/li>\n<li>assets\/js\/roobely-video-popup.min.js \u2192 assets\/js\/roobely-video-popup.js<\/li>\n<li>assets\/js\/blocks\/contactform.min.js \u2192 assets\/js\/blocks\/contactform.js<\/li>\n<li>assets\/js\/blocks\/image-comparison.min.js \u2192 assets\/js\/blocks\/image-comparison.js<\/li>\n<li>assets\/js\/blocks\/map.min.js \u2192 assets\/js\/blocks\/map.js<\/li>\n<\/ul>\n\n<h3>Third-Party Libraries<\/h3>\n\n<p>Library: Font Awesome\nVersion: 7.2.0\nLicense: MIT\nSource: https:\/\/fontawesome.com\/\nStatus: Actively maintained<\/p>\n\n<p>Library: Roobely Video Popup (Custom Implementation)\nVersion: 1.0\nLicense: GPLv2 or later (original code, bundled with this plugin \u2014 not a fork of Magnific Popup, and MIT terms do not apply)\nSource: https:\/\/bitbucket.org\/tiger12\/roobely\/src\/main\/assets\/js\/roobely-video-popup.js\nStatus: Maintained by the Roobely team\nNotes: A small, dependency-free custom lightbox used by the Video Popup block to embed YouTube and Vimeo videos.<\/p>\n\n<p>Library: jQuery\nVersion: WP Core\nLicense: MIT\nSource: https:\/\/jquery.com\/\nStatus: Actively maintained<\/p>\n\n<!--section=installation-->\n<p>Upload the plugin folder to \/wp-content\/plugins\/roobely\nActivate the plugin through the 'Plugins' menu in WordPress\nStart using Roobely blocks in the Block Editor<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20roobely%20free%3F\"><h3>Is Roobely free?<\/h3><\/dt>\n<dd><p>Yes. The core plugin is free.<\/p><\/dd>\n<dt id=\"does%20roobely%20work%20with%20all%20themes%3F\"><h3>Does Roobely work with all themes?<\/h3><\/dt>\n<dd><p>Roobely works with most modern block editor compatible themes.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20optimized%20for%20performance%3F\"><h3>Is the plugin optimized for performance?<\/h3><\/dt>\n<dd><p>Yes. Google Fonts are disabled by default.<\/p><\/dd>\n<dt id=\"how%20do%20i%20enable%20google%20fonts%3F\"><h3>How do I enable Google Fonts?<\/h3><\/dt>\n<dd><p>Go to Roobely \u2192 Settings \u2192 Advanced and set \"Load Google Fonts\" to Yes.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.6<\/h4>\n\n<p>Bugfix: Fixed a typo in an internal function name (<code>roobely_resigter_rest_order_by_fields<\/code> \u2192 <code>roobely_register_rest_order_by_fields<\/code>) and its hook registration\nSecurity\/Compliance: Removed remaining <code>class_exists()<\/code> self-guards around the plugin's own classes (<code>ROOBELY_Options<\/code>, <code>ROOBELY_Initial_Setup<\/code>) \u2014 these guards are only appropriate for shared libraries, and the classes are already uniquely named\nBugfix: Moved a helper function (<code>roobely_excerpt_max_charlength<\/code>) that was being redeclared inside the Post Grid block's render callback (guarded by <code>function_exists()<\/code>) out to a proper top-level declaration, so it's defined once per request instead of relying on a redeclare guard - fixes a latent fatal-error risk when multiple Post Grid blocks appear on one page\nSecurity\/Compliance: Renamed two internal post meta keys that used a double-underscore (<code>__<\/code>) prefix, which is reserved for WordPress core, to single-underscore\/no-underscore equivalents consistent with the rest of the plugin: <code>__roobely_available_blocks<\/code> \u2192 <code>_roobely_available_blocks<\/code>, and <code>__roobely_global_settings<\/code> \u2192 <code>roobely_global_settings<\/code> (this also fixes the \"saved preset\" lookup, which was silently reading the wrong meta key and always returning empty)\nSecurity: <code>check_ajax_referer()<\/code> is now used for the Settings AJAX handler's nonce check, in place of a manual <code>wp_verify_nonce()<\/code> call, for consistency with WordPress's recommended AJAX security pattern\nSecurity: Dynamic CSS generation in CssEngine.php now runs numeric values through an additional sanitization step before they're inserted into generated CSS rules, as defense-in-depth against a malformed\/tampered stored attribute value breaking out of its declaration\nDocumentation: Updated WPML config to match the renamed post meta key<\/p>\n\n<h4>1.0.5<\/h4>\n\n<p>Security\/Compliance: Renamed the AJAX action and handler used by the Settings page from <code>wp_ajax_update_roobely_options<\/code> \/ <code>ajax_update_roobely_options<\/code> to <code>wp_ajax_roobely_update_options<\/code> \/ <code>roobely_ajax_update_options<\/code>, so the action name no longer starts with the generic word \"update\" and is unique to the plugin\nSecurity\/Compliance: Renamed the localized block-editor script object from <code>wpApiSettings<\/code> to <code>roobelyApiSettings<\/code>, since the <code>wp<\/code> prefix is reserved for WordPress core\nCleanup: Removed <code>if (!function_exists())<\/code> guards around the plugin's own functions in roobely.php; all function names are already uniquely prefixed, and this pattern is only appropriate for shared libraries, not a plugin's own always-loaded functions\nBugfix: Animated Heading block now enqueues the minified <code>jquery.animatedheadline.min.js<\/code> asset instead of the unminified source file, consistent with how the rest of the plugin's scripts are loaded<\/p>\n\n<h4>1.0.4<\/h4>\n\n<p>Security: Google Maps API key is now entirely omitted from the data sent to the block editor for Editors\/Authors (not just blanked) - only Administrators (<code>manage_options<\/code>) receive the key at all; other roles see the existing \"please configure an API key\" notice\nSecurity: Removed the Mailchimp API key from the data sent to the block editor - it was never read by any editor script\nDocumentation: Added Contact Form to the Included Blocks list\nCompatibility: <code>align-wide<\/code> theme support is now declared as a fallback on <code>after_setup_theme<\/code> instead of unconditionally at plugin load, so themes that opt out are respected\nBugfix: Minimum PHP\/WordPress version checks in code now match the readme\/plugin header (PHP 7.4, WordPress 6.1) instead of long-outdated values\nCleanup: Excluded <code>build-tools\/<\/code> from the release package\nCleanup: Removed unused <code>sanitize_interaction_json()<\/code> method\nDocumentation: Noted that <code>assets\/reactjs\/src\/<\/code> is the primary editable source, since <code>assets\/js\/roobely.js<\/code> is a generated build output<\/p>\n\n<h4>1.0.3<\/h4>\n\n<p>Cleanup: Removed the read-only fallback that checked for a legacy <code>roobely-json-{id}.json<\/code> file in the uploads directory; interaction data is now read exclusively from the <code>_roobely_interaction_json<\/code> post meta, which has been the sole write path since 1.0.2\nCleanup: Removed the unused <code>roobely_interactions<\/code> REST post meta registration, which was never read from or written to; <code>_roobely_interaction_json<\/code> is the single, consistent meta key for interaction data end-to-end<\/p>\n\n<h4>1.0.2<\/h4>\n\n<p>Security: Fixed .htaccess rule that was blocking the plugin's own generated stylesheets on Apache (previously denied .css as well as .json in the uploads\/roobely directory)\nSecurity: Hardened <code>roobely_global_settings<\/code> post meta with auth and sanitize callbacks\nBugfix: Block preview now generates CSS and interaction data live from the post's current content instead of relying on static preview files that were never populated\nBugfix: Interaction (scroll\/mouse animation) data is now regenerated from saved block attributes on every post save, instead of only being read from a field nothing wrote to\nBugfix: The \"File System\" CSS location setting now actually writes\/removes the per-post CSS file it relies on\nCleanup: Removed unused legacy roobely-preview.css\/json file-writer and a stray undefined-variable reference in the Google Fonts loader\nDocumentation: Corrected readme Third-Party Libraries entry (custom video modal, not a Magnific Popup fork) and added the missing Vimeo external service disclosure\nDocumentation: Improved Source Code section in readme.txt with clear public repository link (Bitbucket)<\/p>\n\n<h4>1.0.1<\/h4>\n\n<p>Security: Strengthened REST API permission callbacks\nPrivacy: Google Fonts disabled by default\nSecurity: Improved CSS and JSON sanitization\nSecurity: Better escaping in Post Grid block\nDocumentation: Full external services and source code disclosure\nMaintenance: Updated Font Awesome to 7.2.0\nCompatibility: Tested up to WordPress 7.0<\/p>\n\n<h4>1.0.0<\/h4>\n\n<p>Initial release<\/p>","raw_excerpt":"Fast and lightweight advanced blocks plugin for the WordPress block editor.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/316757","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=316757"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/gteigland"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=316757"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=316757"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=316757"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=316757"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=316757"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=316757"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}