{"id":232821,"date":"2025-05-15T15:52:25","date_gmt":"2025-05-15T15:52:25","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/groundworx-carousel-block\/"},"modified":"2026-04-01T22:09:04","modified_gmt":"2026-04-01T22:09:04","slug":"groundworx-carousel","status":"publish","type":"plugin","link":"https:\/\/es-cr.wordpress.org\/plugins\/groundworx-carousel\/","author":8122980,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"3.0.2","stable_tag":"3.0.2","tested":"6.9.4","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Groundworx Carousel","header_author":"Groundworx","header_description":"A powerful and responsive carousel block built with Splide and Gutenberg.","assets_banners_color":"c1c0ba","last_updated":"2026-04-01 22:09:04","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/ko-fi.com\/groundworx","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/groundworx-carousel","header_author_uri":"https:\/\/groundworx.dev","rating":4,"author_block_rating":0,"active_installs":60,"downloads":1254,"num_ratings":2,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"Alexandrie","date":"2025-05-15 15:56:15"},"1.0.3":{"tag":"1.0.3","author":"Alexandrie","date":"2025-07-30 21:50:04"},"2.0.0":{"tag":"2.0.0","author":"Alexandrie","date":"2025-11-15 23:44:23"},"3.0.0":{"tag":"3.0.0","author":"Alexandrie","date":"2026-02-23 21:38:45"},"3.0.1":{"tag":"3.0.1","author":"Alexandrie","date":"2026-03-10 06:11:09"},"3.0.2":{"tag":"3.0.2","author":"Alexandrie","date":"2026-04-01 22:09:04"}},"upgrade_notice":{"3.0.1":"<p>Fixes disabled UI elements (pagination, progress bar, counter) incorrectly showing on the frontend. Adds PHP 7.4 compatibility.<\/p>","3.0.0":"<p>Major update: carousel engine migrated from Splide.js to Embla Carousel 8.x with full WordPress Interactivity API integration. The <code>splideOptions<\/code> attribute has been renamed to <code>carouselOptions<\/code> with Embla-native key names \u2014 existing blocks auto-migrate when opened in the editor and render correctly without re-saving via PHP fallback. Color system overhauled to use standard WordPress color classes and inline styles. Breakpoints streamlined to 5 levels. Requires WordPress 6.5+ and PHP 8.2+. Backup recommended before updating.<\/p>","2.0.0":"<p>Major update with 9 new templates, comprehensive responsive controls with 8 breakpoint levels, advanced color customization, and 20 combined arrow\/pagination style options. Includes mobile-first responsive system and grid fallback functionality. Backward compatible with version 1.x carousels. Highly recommended for all users to access powerful new features. Requires WordPress 6.5+ and PHP 8.2+.<\/p>","1.0.4":"<p>Bug fixes and WordPress 6.9 compatibility. Recommended update for improved stability.<\/p>","1.0.3":"<p>Fixes editor layout issues in WordPress 6.8+. Recommended for users on WordPress 6.8 or higher.<\/p>","1.0.2":"<p>Fixes breakpoint configuration bug. Recommended for all users experiencing responsive issues.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":2,"5":0},"assets_icons":{"icon-128x128.jpg":{"filename":"icon-128x128.jpg","revision":3468042,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":3468042,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3468042,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3468042,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":{"groundworx\/carousel":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"groundworx\/carousel","version":"2.0.0","title":"Carousel","category":"design","description":"Display content in a carousel, with blocks added to each slide.","allowedBlocks":["groundworx\/slide"],"textdomain":"groundworx-carousel","keywords":["slides","carousel"],"supports":{"__experimentalOnEnter":true,"__experimentalOnMerge":true,"__experimentalSettings":true,"align":["full","wide"],"html":false,"interactivity":true,"inserter":true,"className":true,"groundworx":{"breakpoints":["large-phone","tablet","laptop","desktop","large-desktop"]},"color":{"gradients":true,"__experimentalDefaultControls":{"background":true,"text":true}},"spacing":{"margin":["top","bottom"],"padding":true,"blockGap":true,"selector":".gwx-carousel__container","__experimentalSkipSerialization":["blockGap"],"__experimentalDefaultControls":{"padding":true,"blockGap":true}},"shadow":true,"__experimentalBorder":{"color":true,"radius":true,"style":true,"width":true,"__experimentalDefaultControls":{"color":true,"radius":true,"style":true,"width":true}},"layout":{"default":{"type":"default"},"allowJustification":true,"allowOrientation":true,"allowSwitching":false,"allowEditing":true,"allowSizingOnChildren":false,"allowVerticalAlignment":true},"typography":{"fontSize":true,"lineHeight":true,"__experimentalFontFamily":true,"__experimentalFontWeight":true,"__experimentalFontStyle":true,"__experimentalTextTransform":true,"__experimentalTextDecoration":true,"__experimentalLetterSpacing":true,"__experimentalDefaultControls":{"fontSize":true}}},"attributes":{"isPreview":{"type":"boolean","default":false},"template":{"type":"string","default":"default"},"progressColor":{"type":"string"},"customProgressColor":{"type":"string"},"progressBackgroundColor":{"type":"string"},"customProgressBackgroundColor":{"type":"string"},"paginationColor":{"type":"string"},"customPaginationColor":{"type":"string"},"paginationBackgroundColor":{"type":"string"},"customPaginationBackgroundColor":{"type":"string"},"paginationBorderColor":{"type":"string"},"customPaginationBorderColor":{"type":"string"},"paginationInactiveColor":{"type":"string"},"customInactivePaginationColor":{"type":"string"},"customPaginationInactiveColor":{"type":"string"},"paginationInactiveBackgroundColor":{"type":"string"},"customPaginationInactiveBackgroundColor":{"type":"string"},"paginationInactiveBorderColor":{"type":"string"},"customPaginationInactiveBorderColor":{"type":"string"},"arrowsColor":{"type":"string"},"customArrowsColor":{"type":"string"},"arrowsBackgroundColor":{"type":"string"},"customArrowsBackgroundColor":{"type":"string"},"arrowsBorderColor":{"type":"string"},"customArrowsBorderColor":{"type":"string"},"counterColor":{"type":"string"},"customCounterColor":{"type":"string"},"paginationStyle":{"type":"string","default":"circleOutline"},"arrowStyle":{"type":"string","default":"chevron"},"breakpoints":{"type":"object","default":{"tablet":{"layout":{"type":"grid","minimumColumnWidth":null,"columnCount":3}},"laptop":{"layout":{"type":"grid","minimumColumnWidth":"300px"}},"desktop":{"layout":{"type":"grid","minimumColumnWidth":"300px"}}}},"carouselOptions":{"type":"object","default":{"type":"slide","align":"start","perPage":1,"autoplay":false,"pagination":false,"arrows":true,"progressBar":false,"counter":false,"containScroll":"trimSnaps"}},"splideOptions":{"type":"object"}},"selectors":{"root":".wp-block-groundworx-carousel","color":{"text":".wp-block-groundworx-carousel, .wp-block-groundworx-carousel > .gwx-carousel__wrapper > .gwx-carousel__pagination > .gwx-carousel__pagination-item:is(.gwx-carousel__pagination-item--number):not(.is-active), .wp-block-groundworx-carousel > .gwx-carousel__wrapper > .gwx-carousel__pagination > .gwx-carousel__pagination-item:not(.gwx-carousel__pagination-item--number), .wp-block-groundworx-carousel > .gwx-carousel__wrapper > .gwx-carousel__arrows > .gwx-carousel__counter"}},"render":"file:.\/render.php","editorStyle":"groundworx-carousel-editor","style":"groundworx-carousel-style","viewScriptModule":["groundworx-carousel-view"]}},"tagged_versions":["1.0.2","1.0.3","2.0.0","3.0.0","3.0.1","3.0.2"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3468042,"resolution":"1","location":"assets","locale":""},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3468042,"resolution":"2","location":"assets","locale":""},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3468042,"resolution":"3","location":"assets","locale":""},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3468042,"resolution":"4","location":"assets","locale":""}},"screenshots":{"1":"Carousel block in the WordPress block editor with responsive controls","2":"Nine professional templates to choose from","3":"Advanced color customization for all UI elements","4":"Responsive grid layout panel with breakpoint configuration","5":"Arrow and pagination style selection","6":"Mobile view with touch\/swipe support","7":"Overlay template example with gradient background","8":"Grid fallback view when carousel is destroyed at larger breakpoints"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1220,786,148076,606,611],"plugin_category":[50],"plugin_contributors":[242341],"plugin_business_model":[],"class_list":["post-232821","plugin","type-plugin","status-publish","hentry","plugin_tags-block","plugin_tags-carousel","plugin_tags-gutenberg","plugin_tags-responsive","plugin_tags-slider","plugin_category-media","plugin_contributors-alexandrie","plugin_committers-alexandrie"],"banners":{"banner":"https:\/\/ps.w.org\/groundworx-carousel\/assets\/banner-772x250.jpg?rev=3468042","banner_2x":"https:\/\/ps.w.org\/groundworx-carousel\/assets\/banner-1544x500.jpg?rev=3468042","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/groundworx-carousel\/assets\/icon-128x128.jpg?rev=3468042","icon_2x":"https:\/\/ps.w.org\/groundworx-carousel\/assets\/icon-256x256.jpg?rev=3468042","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/groundworx-carousel\/assets\/screenshot-1.jpg?rev=3468042","caption":"Carousel block in the WordPress block editor with responsive controls"},{"src":"https:\/\/ps.w.org\/groundworx-carousel\/assets\/screenshot-2.jpg?rev=3468042","caption":"Nine professional templates to choose from"},{"src":"https:\/\/ps.w.org\/groundworx-carousel\/assets\/screenshot-3.jpg?rev=3468042","caption":"Advanced color customization for all UI elements"},{"src":"https:\/\/ps.w.org\/groundworx-carousel\/assets\/screenshot-4.jpg?rev=3468042","caption":"Responsive grid layout panel with breakpoint configuration"}],"raw_content":"<!--section=description-->\n<p><strong>Groundworx Carousel<\/strong> is a flexible Gutenberg block that transforms any WordPress content into beautiful, responsive carousels. Built on the lightweight Embla Carousel engine and the WordPress Interactivity API, it offers advanced responsive controls, multiple design templates, and extensive customization options\u2014all within WordPress's native block editor.<\/p>\n\n<h4>Perfect For<\/h4>\n\n<ul>\n<li>Image galleries and photo carousels<\/li>\n<li>Testimonial and review sliders<\/li>\n<li>Product showcases and e-commerce displays<\/li>\n<li>Hero sections and featured content<\/li>\n<li>Client logo carousels<\/li>\n<li>Team member presentations<\/li>\n<li>Portfolio galleries<\/li>\n<li>Content marketing sliders<\/li>\n<li>Blog post carousels<\/li>\n<li>Before\/after comparisons<\/li>\n<\/ul>\n\n<h4>Key Features<\/h4>\n\n<p><strong>\ud83c\udfa8 Nine Professional Templates<\/strong>\nChoose from carefully designed templates to match your content style:\n* Default &amp; Default Alt - Classic carousel layouts with external navigation\n* Simple, Simple Left, Simple Right - Clean minimalist designs with flexible content positioning\n* Overlay &amp; Overlay Alt - Modern content overlaid on images with gradient backgrounds\n* Partial Overlay &amp; Partial Overlay Alt - Balanced layouts with partial content overlays<\/p>\n\n<p><strong>\ud83d\udcf1 Advanced Responsive Controls<\/strong>\n* Configure carousel behavior per breakpoint (mobile, large-phone, tablet, laptop, desktop, large-desktop)\n* Responsive grid fallback - destroy carousel at specific breakpoints to display slides as a grid\n* Mobile-first breakpoint system with inheritance\n* Full touch and swipe gesture support for mobile devices\n* 6 total breakpoint levels for precise responsive control<\/p>\n\n<p><strong>\ud83c\udfaf Carousel Types &amp; Transitions<\/strong>\n* Slide mode - Classic horizontal sliding carousel\n* Loop mode - Infinite continuous scrolling with clones\n* Drag and swipe gesture support with momentum<\/p>\n\n<p><strong>\u2699\ufe0f Flexible Display Options<\/strong>\n* Multiple slides per page with responsive settings\n* Variable slide width (auto) or fixed width options\n* Start, center, or end alignment\n* Customizable gap spacing between slides\n* Autoplay<\/p>\n\n<p><strong>\ud83c\udf9a\ufe0f Navigation &amp; UI Controls<\/strong>\n* <strong>11 Arrow Styles<\/strong>: arrow, chevron, chevronRounded, halfArrow, play, playRounded, sharpChevron, thinChevron, thinChevronRounded, triangle, triangleRounded\n* <strong>9 Pagination Styles<\/strong>: circle, circleOutline, square, squareOutline, diamond, diamondOutline, rectangle, rectangleOutline, number\n* Progress bar indicator\n* Slide counter display (e.g., \"3 \/ 10\")\n* Hide\/show controls per breakpoint\n* Color customization for all UI elements<\/p>\n\n<p><strong>\ud83c\udfa8 Advanced Color Controls<\/strong>\nCustomize every UI element with full WordPress color palette support:\n* <strong>Arrows<\/strong>: text, background, border colors\n* <strong>Active Pagination<\/strong>: text, background, border colors\n* <strong>Inactive Pagination<\/strong>: text, background, border colors\n* <strong>Progress Bar<\/strong>: foreground and background colors\n* <strong>Counter<\/strong>: text color\n* Uses WordPress preset color classes and custom inline styles (no CSS custom properties)<\/p>\n\n<p><strong>\u267f Accessibility First<\/strong>\n* ARIA labels and semantic HTML structure\n* Keyboard navigation support (arrow keys, Enter, Space)\n* Screen reader friendly with live regions\n* WCAG compliant markup\n* Focus management and visible focus states<\/p>\n\n<p><strong>\ud83d\udd27 Developer Features<\/strong>\n* WordPress Interactivity API for reactive frontend behavior\n* Block variations support via <code>wp.blocks.registerBlockVariation()<\/code>\n* Carousel options via <code>carouselOptions<\/code> attribute (legacy <code>splideOptions<\/code> auto-migrated)\n* Extensible template system with WordPress hooks\n* Breakpoint configuration via JSON file\n* React hooks for responsive state management\n* Standard WordPress color classes for theme integration\n* Well-documented, modular code structure<\/p>\n\n<h4>Works With Any Block<\/h4>\n\n<p>The Carousel block is a container that accepts <strong>any WordPress block<\/strong> as slides:\n* Core Image block\n* Core Paragraph block\n* Core Heading block\n* Core Group block\n* Core Cover block\n* Core Buttons block\n* Custom blocks from other plugins\n* Your own custom blocks<\/p>\n\n<p>Each slide is fully customizable using WordPress's native block editing tools.<\/p>\n\n<h4>Built on Embla Carousel<\/h4>\n\n<p>Powered by Embla Carousel 8.x - a lightweight, extensible, and performant carousel library. No jQuery required. Optimized for modern browsers with the WordPress Interactivity API for reactive state management.<\/p>\n\n<h4>Part of Groundworx Core<\/h4>\n\n<p>This carousel block is part of the Groundworx Block Suite\u2014a modular collection of high-performance, design-focused blocks built for modern WordPress development. Uses Groundworx Foundation components for consistent, professional UI controls.<\/p>\n\n<h4>Need More? Check Out Groundworx Showcase<\/h4>\n\n<p><strong>Groundworx Carousel<\/strong> is a self-contained carousel block \u2014 you add slides manually, and navigation (arrows, pagination, etc.) is built into the block itself. It's a great fit for static content like testimonials, feature highlights, or image galleries where you control every slide.<\/p>\n\n<p><strong><a href=\"https:\/\/groundworx.dev\/products\/groundworx-showcase\/\">Groundworx Showcase<\/a><\/strong> takes a fundamentally different approach: a <strong>modular block system<\/strong> where every piece \u2014 the carousel, the slides, and each navigation control \u2014 is its own independent block. 12 blocks, 4 flow types, and full query support.<\/p>\n\n<p><strong>Query &amp; Content:<\/strong><\/p>\n\n<ul>\n<li><strong>Query-driven carousels<\/strong> \u2014 Pull slides automatically from posts, pages, custom post types, or WooCommerce products. Filter by taxonomies, date, authors, keyword, and post formats. Set max items and sort order. Or switch to <strong>Curated<\/strong> mode to hand-pick specific posts.<\/li>\n<li><strong>Block pattern support<\/strong> \u2014 Design your slide layout with blocks (title, excerpt, image, buttons \u2014 whatever you want), and every queried post fills that pattern. Works just like WordPress's Query Loop block \u2014 pick a pattern, change it later, every slide updates.<\/li>\n<li><strong>4 Flow types<\/strong> \u2014 Dynamic Flow (query carousel), Static Flow (manual carousel), Dynamic Content (query grid\/flex), and Flow Template (reusable slide pattern). Dynamic Content outputs the same query to grid or flex layouts instead of a carousel.<\/li>\n<\/ul>\n\n<p><strong>Modular Controls:<\/strong><\/p>\n\n<ul>\n<li><strong>Independent navigation blocks<\/strong> \u2014 Arrows, pagination, progress bar, and counter are separate blocks inside the carousel. Wrap them in groups, columns, or any container block to build your own layout \u2014 they're not locked to fixed positions.<\/li>\n<li><strong>More control over every component<\/strong> \u2014 Each piece is its own block with its own settings, spacing, and layout options.<\/li>\n<\/ul>\n\n<p><strong>Carousel Options:<\/strong><\/p>\n\n<ul>\n<li><strong>More modes<\/strong> \u2014 Fade transitions, vertical slides, auto-scroll (continuous scrolling), and RTL text direction \u2014 in addition to slide and loop.<\/li>\n<li><strong>Fine-grained timing<\/strong> \u2014 Customizable slide animation duration, autoplay with configurable interval, auto-scroll with configurable speed, and pause-on-hover for both autoplay and auto-scroll.<\/li>\n<li><strong>Video support<\/strong> \u2014 Videos automatically pause when their slide is not active.<\/li>\n<li><strong>Per-breakpoint layout switching<\/strong> \u2014 Switch between carousel, grid, and flex at every breakpoint independently. For example: carousel on mobile, grid on tablet, carousel again on desktop. Carousel only supports a one-way break to grid \u2014 once destroyed, it stays grid at all larger breakpoints.<\/li>\n<\/ul>\n\n<p><strong>Carousel vs. Showcase at a glance:<\/strong><\/p>\n\n<ul>\n<li><strong>Carousel<\/strong>: One block, manual slides, built-in navigation, slide\/loop modes, one-way grid fallback \u2014 simple and self-contained<\/li>\n<li><strong>Showcase<\/strong>: 12 modular blocks, query-driven or curated, slide\/loop\/fade\/auto-scroll modes, vertical slides, RTL, per-breakpoint carousel\/grid\/flex switching \u2014 flexible and composable<\/li>\n<\/ul>\n\n<p><strong>Showcase is ideal when you need:<\/strong><\/p>\n\n<ul>\n<li>Carousels that populate automatically from your content<\/li>\n<li>Block patterns applied to query-driven slides \u2014 like the Query Loop block, but for carousels<\/li>\n<li>Full control over navigation layout \u2014 wrap controls in any block container<\/li>\n<li>The same query powering both carousel and grid views<\/li>\n<\/ul>\n\n<p><a href=\"https:\/\/groundworx.dev\/products\/groundworx-showcase\/\">Learn more about Groundworx Showcase \u2192<\/a><\/p>\n\n<h3>Developer Notes<\/h3>\n\n<h4>Registering Custom Block Variations<\/h4>\n\n<p>You can register custom carousel variations using <code>wp.blocks.registerBlockVariation()<\/code> and pass carousel configuration options via the <code>carouselOptions<\/code> attribute.<\/p>\n\n<p><strong>Example: Carousel with Grid Fallback at Tablet<\/strong><\/p>\n\n<pre><code>wp.blocks.registerBlockVariation('groundworx\/carousel', {\n  name: 'carousel-to-tablet',\n  title: 'Carousel \/ Grid Tablet',\n  attributes: {\n    template: 'default',\n    carouselOptions: {\n      type: 'loop',\n      perPage: 1,\n      arrows: true,\n      pagination: true,\n      containScroll: 'trimSnaps',\n      breakpoints: {\n        tablet: {\n          destroy: true\n        }\n      }\n    },\n    breakpoints: {\n      tablet: {\n        layout: {\n          type: 'grid',\n          columnCount: 3\n        }\n      }\n    }\n  },\n  scope: ['block', 'inserter', 'transform']\n});\n<\/code><\/pre>\n\n<p><strong>Example: Auto-Width Carousel<\/strong><\/p>\n\n<pre><code>wp.blocks.registerBlockVariation('groundworx\/carousel', {\n  name: 'auto-width-carousel',\n  title: 'Auto Width Carousel',\n  attributes: {\n    carouselOptions: {\n      type: 'loop',\n      fixedWidth: '300px',\n      align: 'center',\n      gap: '1rem'\n    }\n  }\n});\n<\/code><\/pre>\n\n<h4>Adding Custom Templates<\/h4>\n\n<p>Use the <code>groundworx.carousel.templates<\/code> filter to add custom templates:<\/p>\n\n<pre><code>wp.hooks.addFilter(\n  'groundworx.carousel.templates',\n  'my-theme\/add-custom-template',\n  (templates) =&gt; [\n    ...templates,\n    {\n      label: 'My Custom Template',\n      value: 'my-custom'\n    }\n  ]\n);\n<\/code><\/pre>\n\n<p>Then add your template styles in your theme:<\/p>\n\n<pre><code>.wp-block-groundworx-carousel.template-my-custom .gwx-carousel__slide {\n  \/* Your custom styles *\/\n}\n<\/code><\/pre>\n\n<h4>Supported Breakpoints<\/h4>\n\n<p>The carousel supports 5 configurable responsive breakpoints plus a mobile\/default base, following a mobile-first approach:<\/p>\n\n<ul>\n<li><strong>Mobile\/Default<\/strong>: 0-479px (base configuration)<\/li>\n<li><strong>large-phone<\/strong>: 480px and up<\/li>\n<li><strong>tablet<\/strong>: 680px and up<\/li>\n<li><strong>laptop<\/strong>: 1080px and up<\/li>\n<li><strong>desktop<\/strong>: 1280px and up<\/li>\n<li><strong>large-desktop<\/strong>: 1440px and up<\/li>\n<\/ul>\n\n<p>Settings cascade from mobile to larger screens. Override at any breakpoint to change behavior.<\/p>\n\n<p><strong>Grid Fallback Breakpoints:<\/strong>\nFor grid fallback functionality, you can use any of the 5 breakpoints: <code>large-phone<\/code>, <code>tablet<\/code>, <code>laptop<\/code>, <code>desktop<\/code>, or <code>large-desktop<\/code>.<\/p>\n\n<h4>Carousel Options<\/h4>\n\n<p>Carousel options are configured via the <code>carouselOptions<\/code> attribute. Common options:<\/p>\n\n<ul>\n<li><code>type<\/code>: 'slide' or 'loop'<\/li>\n<li><code>perPage<\/code>: Number of slides per page<\/li>\n<li><code>slidesToScroll<\/code>: Number of slides to scroll per action (default: 1)<\/li>\n<li><code>fixedWidth<\/code>: Fixed width for each slide (e.g., '300px')<\/li>\n<li><code>gap<\/code>: Space between slides<\/li>\n<li><code>align<\/code>: Slide alignment \u2014 'start', 'center', or 'end'<\/li>\n<li><code>containScroll<\/code>: Trim empty scroll snaps \u2014 'trimSnaps' or false<\/li>\n<li><code>autoplay<\/code>: Enable\/disable autoplay<\/li>\n<li><code>arrows<\/code>: Show\/hide arrows<\/li>\n<li><code>pagination<\/code>: Show\/hide pagination<\/li>\n<li><code>progressBar<\/code>: Show\/hide progress bar<\/li>\n<li><code>counter<\/code>: Show\/hide slide counter<\/li>\n<li><code>destroy<\/code>: Disable carousel and display as grid<\/li>\n<\/ul>\n\n<p>Breakpoint-specific overrides are supported via the <code>breakpoints<\/code> attribute. Legacy <code>splideOptions<\/code> are automatically converted on render.<\/p>\n\n<h4>Color System<\/h4>\n\n<p>All UI element colors use the standard WordPress color pattern:<\/p>\n\n<ul>\n<li><strong>Preset colors<\/strong> apply WordPress utility classes (<code>has-text-color<\/code>, <code>has-{slug}-color<\/code>, <code>has-background<\/code>, <code>has-border-color<\/code>)<\/li>\n<li><strong>Custom colors<\/strong> apply inline styles<\/li>\n<\/ul>\n\n<p>Pagination dot colors toggle dynamically between active and inactive states using the WordPress Interactivity API (<code>data-wp-class<\/code> for presets, <code>data-wp-style<\/code> for custom colors).<\/p>\n\n<p>Elements with color support:<\/p>\n\n<ul>\n<li><strong>Arrows<\/strong>: text, background, border<\/li>\n<li><strong>Pagination (active)<\/strong>: text, background (number style), border (number style)<\/li>\n<li><strong>Pagination (inactive)<\/strong>: text, background (number style), border (number style)<\/li>\n<li><strong>Progress bar<\/strong>: track background, bar foreground<\/li>\n<li><strong>Counter<\/strong>: text<\/li>\n<\/ul>\n\n<h4>Template Classes<\/h4>\n\n<p>Each template adds a class to the carousel wrapper:<\/p>\n\n<ul>\n<li><code>.template-default<\/code><\/li>\n<li><code>.template-default-alt<\/code><\/li>\n<li><code>.template-simple<\/code><\/li>\n<li><code>.template-simple-left<\/code><\/li>\n<li><code>.template-simple-right<\/code><\/li>\n<li><code>.template-overlay<\/code><\/li>\n<li><code>.template-overlay-alt<\/code><\/li>\n<li><code>.template-partial-overlay<\/code><\/li>\n<li><code>.template-partial-overlay-alt<\/code><\/li>\n<\/ul>\n\n<p>Use these for template-specific styling.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>This plugin does not collect, store, or transmit any user data. It operates entirely within your WordPress installation and does not make external API calls except for loading assets from your own server.<\/p>\n\n<h3>Credits<\/h3>\n\n<ul>\n<li>Built with <a href=\"https:\/\/www.embla-carousel.com\/\">Embla Carousel<\/a> by David Jerleke - A lightweight, extensible carousel library<\/li>\n<li>Developed by Groundworx Agency LLC<\/li>\n<li>Created and maintained by Johanne Courtright<\/li>\n<li>Part of the Groundworx Core framework<\/li>\n<li>Website: https:\/\/groundworx.dev<\/li>\n<li>Support: https:\/\/ko-fi.com\/groundworx<\/li>\n<\/ul>\n\n<h3>Additional Resources<\/h3>\n\n<ul>\n<li><a href=\"https:\/\/github.com\/groundworx-dev\/groundworx-carousel#readme\">Full Documentation<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/groundworx-dev\/groundworx-carousel#developer-notes\">Developer Guide<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/groundworx-dev\/groundworx-carousel#block-variations\">Block Variations Examples<\/a><\/li>\n<li><a href=\"https:\/\/www.embla-carousel.com\/\">Embla Carousel Documentation<\/a><\/li>\n<li><a href=\"https:\/\/groundworx.dev\">Groundworx Core Framework<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/groundworx-dev\/groundworx-carousel\">GitHub Repository<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/groundworx-dev\/groundworx-carousel\/issues\">Report Issues<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>Automatic Installation<\/h4>\n\n<ol>\n<li>Log in to your WordPress admin dashboard<\/li>\n<li>Navigate to <strong>Plugins &gt; Add New<\/strong><\/li>\n<li>Search for <strong>\"Groundworx Carousel\"<\/strong><\/li>\n<li>Click <strong>Install Now<\/strong> and then <strong>Activate<\/strong><\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Download the plugin ZIP file<\/li>\n<li>Log in to your WordPress admin dashboard<\/li>\n<li>Navigate to <strong>Plugins &gt; Add New &gt; Upload Plugin<\/strong><\/li>\n<li>Choose the downloaded ZIP file and click <strong>Install Now<\/strong><\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu<\/li>\n<\/ol>\n\n<h4>Getting Started<\/h4>\n\n<ol>\n<li>Create or edit a post or page<\/li>\n<li>Click the <strong>\"+\"<\/strong> icon to add a new block<\/li>\n<li>Search for <strong>\"Carousel\"<\/strong> or find it under the <strong>\"Design\"<\/strong> category<\/li>\n<li>Add the Carousel block to your content<\/li>\n<li>Click <strong>\"Add Slide\"<\/strong> to insert slides<\/li>\n<li>Add any blocks inside each slide (images, text, buttons, etc.)<\/li>\n<li>Customize carousel settings in the sidebar panel<\/li>\n<li>Configure responsive behavior for each breakpoint<\/li>\n<li>Choose arrow and pagination styles<\/li>\n<li>Customize colors for UI elements<\/li>\n<li>Preview and publish<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20use%20any%20wordpress%20block%20inside%20the%20carousel%3F\"><h3>Can I use any WordPress block inside the carousel?<\/h3><\/dt>\n<dd><p>Yes! The Carousel block supports all Gutenberg inner blocks. Add images, text, buttons, groups, covers, or any custom blocks as slides. Each Slide block is a flex container that accepts any inner content.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20mobile%20devices%3F\"><h3>Does it work on mobile devices?<\/h3><\/dt>\n<dd><p>Absolutely. The carousel includes full touch and swipe support for mobile and tablet devices powered by Embla Carousel. You can also configure different behaviors per breakpoint or disable the carousel entirely on larger screens.<\/p><\/dd>\n<dt id=\"can%20i%20turn%20off%20the%20carousel%20at%20certain%20screen%20sizes%3F\"><h3>Can I turn off the carousel at certain screen sizes?<\/h3><\/dt>\n<dd><p>Yes! Use the responsive grid fallback feature. In the block settings, configure each breakpoint (tablet, laptop, desktop) to display as a grid instead of a carousel. This is perfect for responsive design strategies where you want a carousel on mobile but a grid layout on desktop.<\/p><\/dd>\n<dt id=\"how%20do%20i%20customize%20the%20carousel%20behavior%3F\"><h3>How do I customize the carousel behavior?<\/h3><\/dt>\n<dd><p>Use the block settings panel (sidebar) to configure:\n* Carousel type (slide or loop)\n* Number of slides to show per page at each breakpoint\n* Slide width (manual count or auto width)\n* Autoplay toggle\n* Navigation arrows and pagination visibility\n* Arrow style (11 options)\n* Pagination style (9 options)\n* Progress bar and counter toggles\n* Colors for all UI elements\n* Responsive behaviors per breakpoint<\/p><\/dd>\n<dt id=\"what%20templates%20are%20available%3F\"><h3>What templates are available?<\/h3><\/dt>\n<dd><p>The plugin includes 9 professionally designed templates:\n* <strong>Default<\/strong> - Classic layout with standard navigation\n* <strong>Default Alt<\/strong> - Alternative classic layout\n* <strong>Simple<\/strong> - Minimalist design, center-aligned content\n* <strong>Simple Left<\/strong> - Minimalist with left-aligned content\n* <strong>Simple Right<\/strong> - Minimalist with right-aligned content\n* <strong>Overlay<\/strong> - Content overlaid on images with gradient\n* <strong>Overlay Alt<\/strong> - Alternative overlay design\n* <strong>Partial Overlay<\/strong> - Split layout with partial overlay\n* <strong>Partial Overlay Alt<\/strong> - Alternative partial overlay<\/p>\n\n<p>Developers can add custom templates using the <code>groundworx.carousel.templates<\/code> filter hook.<\/p><\/dd>\n<dt id=\"how%20do%20arrow%20and%20pagination%20styles%20work%3F\"><h3>How do arrow and pagination styles work?<\/h3><\/dt>\n<dd><p>Choose from professionally designed options:<\/p>\n\n<p><strong>Arrow Styles (11 options):<\/strong>\narrow, chevron, chevronRounded, halfArrow, play, playRounded, sharpChevron, thinChevron, thinChevronRounded, triangle, triangleRounded<\/p>\n\n<p><strong>Pagination Styles (9 options):<\/strong>\ncircle, circleOutline, square, squareOutline, diamond, diamondOutline, rectangle, rectangleOutline, number<\/p>\n\n<p>Each style can be customized with your theme colors.<\/p><\/dd>\n<dt id=\"what%20are%20the%20breakpoint%20values%3F\"><h3>What are the breakpoint values?<\/h3><\/dt>\n<dd><p>The carousel uses 5 responsive breakpoints plus a mobile\/default base with a mobile-first approach:\n* Mobile\/Default: 0-479px (base styles)\n* Large Phone: 480px and up\n* Tablet: 680px and up\n* Laptop: 1080px and up\n* Desktop: 1280px and up\n* Large Desktop: 1440px and up<\/p>\n\n<p>Settings cascade from mobile to larger screens. Configure each breakpoint independently or let settings inherit from smaller breakpoints.<\/p><\/dd>\n<dt id=\"can%20i%20create%20custom%20carousel%20variations%3F\"><h3>Can I create custom carousel variations?<\/h3><\/dt>\n<dd><p>Yes! Developers can register custom block variations using <code>wp.blocks.registerBlockVariation()<\/code> and pass carousel configuration options via the <code>carouselOptions<\/code> attribute. See the Developer Notes section for examples.<\/p><\/dd>\n<dt id=\"is%20the%20carousel%20accessible%3F\"><h3>Is the carousel accessible?<\/h3><\/dt>\n<dd><p>Yes. The carousel follows accessibility best practices:\n* Proper ARIA labels and roles (<code>aria-label<\/code>, <code>aria-live<\/code>, <code>role=\"presentation\"<\/code>)\n* Keyboard navigation support (arrow keys, Enter, Space, Tab)\n* Focus management with visible focus indicators\n* Screen reader compatibility with live regions\n* Semantic HTML structure\n* WCAG 2.1 AA compliant<\/p><\/dd>\n<dt id=\"does%20it%20affect%20site%20performance%3F\"><h3>Does it affect site performance?<\/h3><\/dt>\n<dd><p>The plugin is optimized for performance:\n* Lightweight Embla Carousel engine with minimal footprint\n* WordPress Interactivity API for efficient reactive updates\n* Conditional asset loading (only loads on pages with carousels)\n* Support for lazy loading images\n* No jQuery dependency\n* Modern ES module architecture<\/p><\/dd>\n<dt id=\"can%20i%20use%20it%20with%20page%20builders%3F\"><h3>Can I use it with page builders?<\/h3><\/dt>\n<dd><p>Yes! The Groundworx Carousel Block works with any theme or page builder that supports WordPress's native block editor (Gutenberg), including:\n* Full Site Editing (FSE) themes\n* Block themes\n* Classic WordPress themes\n* Kadence, GeneratePress, Astra, Blocksy, and other popular themes\n* Any page builder with Gutenberg support<\/p><\/dd>\n<dt id=\"how%20do%20i%20disable%20the%20carousel%20on%20desktop%20but%20keep%20it%20on%20mobile%3F\"><h3>How do I disable the carousel on desktop but keep it on mobile?<\/h3><\/dt>\n<dd><p>In the block settings:\n1. Go to the <strong>Tablet<\/strong>, <strong>Laptop<\/strong>, or <strong>Desktop<\/strong> breakpoint tab\n2. Set the layout type to <strong>Grid<\/strong>\n3. Configure grid columns (manual count or auto width)\n4. Optionally enable <strong>Same Height<\/strong> for uniform grid items<\/p>\n\n<p>The carousel will display normally on mobile but switch to a grid layout at your chosen breakpoint.<\/p><\/dd>\n<dt id=\"can%20i%20style%20the%20carousel%20with%20custom%20css%3F\"><h3>Can I style the carousel with custom CSS?<\/h3><\/dt>\n<dd><p>Yes! The carousel uses standard WordPress color classes for all UI elements. Preset theme colors apply utility classes (e.g., <code>has-text-color<\/code>, <code>has-{slug}-color<\/code>, <code>has-background<\/code>, <code>has-border-color<\/code>), and custom colors use inline styles. This integrates seamlessly with WordPress themes.<\/p>\n\n<p>You can also target template-specific classes like <code>.template-overlay<\/code> or <code>.template-simple-left<\/code>.<\/p><\/dd>\n<dt id=\"how%20do%20i%20update%20from%20a%20previous%20version%3F\"><h3>How do I update from a previous version?<\/h3><\/dt>\n<dd><p>Version 3.0 maintains full backward compatibility with existing carousels. The <code>splideOptions<\/code> attribute is automatically migrated to <code>carouselOptions<\/code> when blocks are opened in the editor. Unedited blocks continue to render correctly via PHP fallback. After updating:\n1. Your existing carousels will continue to work without changes\n2. Opening a carousel in the editor will auto-migrate its settings to the new format\n3. Review carousel settings to take advantage of new features\n4. Test on all devices to ensure optimal display<\/p>\n\n<p>We recommend creating a backup before major updates.<\/p><\/dd>\n<dt id=\"where%20can%20i%20get%20support%3F\"><h3>Where can I get support?<\/h3><\/dt>\n<dd><p>For support, feature requests, or bug reports:\n* Visit: https:\/\/groundworx.dev\n* GitHub: https:\/\/github.com\/groundworx-dev\/groundworx-carousel\n* WordPress.org Support Forums: https:\/\/wordpress.org\/support\/plugin\/groundworx-carousel\/<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>3.0.2<\/h4>\n\n<p>Release Date: April 2026<\/p>\n\n<ul>\n<li>Consolidated all block assets into central editor\/style handles (removed per-block file references)<\/li>\n<li>Refactored all block registrations to use central entry point pattern<\/li>\n<li>Improved accessibility: progress bar now has <code>role=\"progressbar\"<\/code> with dynamic <code>aria-valuenow<\/code><\/li>\n<li>Improved accessibility: <code>aria-roledescription<\/code> is now translatable<\/li>\n<li>Hardened output escaping for color values and spacing presets in block render callbacks<\/li>\n<li>Updated README documentation and PHP version badge<\/li>\n<\/ul>\n\n<h4>3.0.1<\/h4>\n\n<p>Release Date: March 2026<\/p>\n\n<ul>\n<li>Fixed: Carousel UI elements (pagination, progress bar, counter) showing on frontend even when disabled in block settings<\/li>\n<li>Fixed: PHP 7.4 compatibility \u2014 replaced <code>str_starts_with()<\/code> and <code>str_contains()<\/code> (PHP 8.0+) with <code>strpos()<\/code> equivalents<\/li>\n<li>Changed: Minimum PHP requirement lowered from 8.2 to 7.4<\/li>\n<\/ul>\n\n<h4>3.0.0<\/h4>\n\n<p>Release Date: February 2026<\/p>\n\n<p><strong>Major Update - New Carousel Engine &amp; WordPress Interactivity API<\/strong><\/p>\n\n<p><em>New Carousel Engine:<\/em>\n* Migrated from Splide.js to Embla Carousel 8.x\n* Lighter, more extensible carousel engine\n* Improved drag and swipe behavior with momentum\n* Better overflow detection and non-overflow centering<\/p>\n\n<p><em>WordPress Interactivity API:<\/em>\n* Full frontend integration with the WordPress Interactivity API\n* Reactive state management via <code>data-wp-interactive<\/code> store\n* Dynamic pagination dots rendered with <code>data-wp-each<\/code> directive\n* Responsive breakpoint resolution with automatic carousel reinit\n* Slide visibility and inert management for accessibility<\/p>\n\n<p><em>Color System Overhaul:<\/em>\n* Eliminated all CSS custom properties for colors\n* Preset colors now use standard WordPress utility classes (<code>has-text-color<\/code>, <code>has-{slug}-color<\/code>, <code>has-background<\/code>, <code>has-border-color<\/code>)\n* Custom colors now use inline styles\n* Pagination dot colors toggle dynamically between active and inactive states via Interactivity API directives\n* Consistent color handling across arrows, pagination, counter, and progress bar<\/p>\n\n<p><em>Improved Responsive System:<\/em>\n* Streamlined to 5 breakpoints plus mobile default (large-phone, tablet, laptop, desktop, large-desktop)\n* Mobile-first cascade with per-breakpoint option resolution\n* Carousel destroy\/grid mode with automatic Embla cleanup and rebuild on breakpoint change<\/p>\n\n<p><em>Accessibility:<\/em>\n* Tab panel pattern for pagination dots with full keyboard navigation (arrow keys, Home, End)\n* Slide <code>inert<\/code> attribute management for off-screen slides\n* ARIA roles (<code>tablist<\/code>, <code>tab<\/code>, <code>tabpanel<\/code>) on pagination and slides\n* Live region for slide counter updates<\/p>\n\n<p><em>Attribute Migration:<\/em>\n* Renamed <code>splideOptions<\/code> attribute to <code>carouselOptions<\/code> with Embla-native key names\n* Key renames: <code>perMove<\/code> \u2192 <code>slidesToScroll<\/code>, <code>omitEnd<\/code> \u2192 <code>containScroll<\/code>, <code>focus<\/code> \u2192 <code>align<\/code>\n* Removed unused keys: <code>autoHeight<\/code>, <code>mediaQuery<\/code>, <code>rewind<\/code>\n* Existing blocks auto-migrate when opened in the editor\n* Unedited blocks render correctly via PHP fallback conversion\n* Block deprecation handler registered for WordPress serialization compatibility<\/p>\n\n<p><em>Code Cleanup:<\/em>\n* Removed legacy Splide-to-Embla conversion utilities\n* Removed unused editor components (splide-carousel.js, carousel-preview.js)\n* Removed legacy frontend script (script.js) from pre-Interactivity API era<\/p>\n\n<p><em>Breaking Changes:<\/em>\n* Carousel engine changed from Splide.js to Embla Carousel\n* <code>splideOptions<\/code> attribute renamed to <code>carouselOptions<\/code> (auto-migrated, see above)\n* CSS custom properties for colors removed (use WordPress color classes or inline styles)\n* Fade transition type removed (Embla supports slide and loop)\n* Breakpoints reduced from 7 to 5 (phone and large-tablet removed)\n* Requires WordPress 6.5+ with Interactivity API support<\/p>\n\n<h4>2.0.0<\/h4>\n\n<p>Release Date: November 12, 2024<\/p>\n\n<p><strong>Major Update - Complete Redesign<\/strong><\/p>\n\n<p><em>New Features:<\/em>\n* Added 9 professional design templates (Default, Default Alt, Simple variants, Overlay variants, Partial Overlay variants)\n* Introduced comprehensive responsive control system with 7 breakpoint levels\n* Added responsive grid fallback option (destroy carousel at specific breakpoints)\n* New advanced color controls for all UI elements with multi-color picker\n* Added 11 arrow style options (arrow, chevron variants, play variants, triangle variants)\n* Added 9 pagination style options (circle, square, diamond, rectangle, with filled\/outline variants, plus numbers)\n* Implemented progress bar indicator\n* Implemented slide counter display\n* Added per-breakpoint visibility controls for all UI elements\n* Template system with WordPress hooks for developers<\/p>\n\n<p><em>Enhanced Responsive System:<\/em>\n* 8 breakpoint levels (mobile\/default + 7 configurable breakpoints: phone, large-phone, tablet, large-tablet, laptop, desktop, large-desktop)\n* Per-breakpoint configuration for all carousel options\n* Inheritance system - settings cascade from mobile to larger screens\n* Grid layout options per breakpoint (manual column count or auto width)\n* Same height toggle for grid layouts<\/p>\n\n<p><em>UI\/UX Improvements:<\/em>\n* Complete redesign of block inspector controls\n* Improved color customization with dedicated color panels\n* Better visual feedback for arrow and pagination style selection\n* Enhanced responsive controls with clear inheritance indicators\n* Streamlined settings organization<\/p>\n\n<p><em>Developer Features:<\/em>\n* Extensible template system via WordPress hooks\n* Custom Splide.js options support (renamed to <code>carouselOptions<\/code> in 3.0)\n* React hooks for responsive state management (<code>useResponsiveState<\/code>, <code>useCarouselOptions<\/code>)\n* Modular component architecture\n* CSS custom properties for styling\n* Block variation support<\/p>\n\n<p><em>Performance:<\/em>\n* Optimized code structure with modular components\n* Improved asset loading\n* Better carousel initialization and destruction handling\n* Reduced unnecessary re-renders<\/p>\n\n<p><em>Accessibility:<\/em>\n* Enhanced ARIA labels and roles\n* Improved keyboard navigation\n* Better screen reader support\n* Focus management improvements<\/p>\n\n<p><em>Breaking Changes:<\/em>\n* Minimum WordPress version increased to 6.5\n* Minimum PHP version increased to 8.2\n* Removed deprecated features from v1.x\n* Updated to Splide.js 4.x<\/p>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Fixed: Removed extra scripts library to reduce redundant dependencies<\/li>\n<li>Tested up to WordPress 6.9.0<\/li>\n<li>Improved compatibility with latest WordPress version<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Fixed: Adjusted editor canvas width detection for iframe-less block editor in WordPress 6.8+<\/li>\n<li>Improved editor experience in WordPress 6.8<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fixed: Breakpoint configuration loading from plugin path<\/li>\n<li>Resolved issues with responsive breakpoint detection<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fixed file exclusions for packaging<\/li>\n<li>Updated metadata for WordPress.org compliance<\/li>\n<li>Improved plugin repository structure<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Basic carousel functionality with Splide.js<\/li>\n<li>Arrow and pagination controls<\/li>\n<li>Support for inner blocks<\/li>\n<li>Mobile touch\/swipe support<\/li>\n<li>Responsive breakpoint configuration<\/li>\n<\/ul>","raw_excerpt":"A responsive carousel block built with Embla Carousel and the WordPress Interactivity API. Works with any block in the editor.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/232821","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=232821"}],"author":[{"embeddable":true,"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/alexandrie"}],"wp:attachment":[{"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=232821"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=232821"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=232821"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=232821"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=232821"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=232821"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}