Aculect Blocks
Enterprise-ready block variations, patterns, and core block enhancements for WordPress block themes.
by Mehul Gohil · github.com/mehul0810/aculect-blocks · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/mehul0810/aculect-blocks/archive/refs/heads/main.zipReadme
Aculect Blocks
Aculect Blocks extends WordPress core blocks with portable styles, practical authoring patterns, and optional structured data generated from visible block content. The plugin is designed to work with block-based themes and prefers core block capabilities before introducing custom blocks.
Current Features
- Adds a modular settings screen under Settings > Aculect Blocks.
- Registers portable style variations for core Group, Columns, List, and Button blocks.
- Adds a core Group variation for clickable cards using one stretched Button link.
- Registers daily-workflow patterns for card grids, FAQ sections, and breadcrumb page headers.
- Loads scoped frontend and editor CSS for Aculect block variations.
- Adds
FAQPageschema for WordPress core Accordion blocks. - Preserves supported HTML in FAQ answers, matching Google Search's documented
Answer.textsupport. - Avoids duplicate output when Rank Math already has an
FAQPageschema node. - Adds
BreadcrumbListschema from rendered WordPress 7.0 core Breadcrumbs blocks and avoids duplicate output when Rank Math already provides it.
Google currently limits FAQ rich-result eligibility to well-known, authoritative government or health sites. This plugin emits valid structured data from visible Accordion content, but Google still decides whether a rich result is shown.
Development
composer install
composer syntax
composer lint
composer phpstan
composer test
npm ci
npm run lint
Custom blocks should only be added after verifying that core blocks, block
styles, block variations, patterns, and theme.json support cannot satisfy the
use case.
Architecture Principles
- Use block styles for portable visual treatments.
- Use block variations and patterns to speed up common authoring workflows.
- Generate schema only from visible core block content.
- Prefer SEO plugin graph integration when available and standalone JSON-LD only as a fallback.
- Do not add generic site-wide schema in this plugin unless it is derived from a core block enhancement.
Module Boundaries
includes/Blocks/registers portable core-block styles and patterns.src/index.jsregisters the editor-only clickable-card variation.includes/Settings/owns the sanitized module settings and defaults.includes/Admin/owns the capability-protected Settings > Aculect Blocks screen.includes/Integrations/andincludes/StructuredData/derive FAQPage and BreadcrumbList data from visible supported core-block output.includes/Schema/outputs one JSON-LD node only when a compatible SEO graph has not already supplied it.includes/Assets/loads scoped frontend, editor, and admin assets.
Aculect Theme is optional. It owns site-wide FSE templates and design tokens; this plugin owns portable enhancements and must work with other block themes.
Requirements and Compatibility
- WordPress 7.0 or later
- PHP 8.2 or later
- Node 20.10 or later and npm 10.2.3 or later for development
The plugin supports block themes. It uses core block capabilities and does not provide a custom block library. Rank Math is detected for duplicate FAQPage and BreadcrumbList schema protection; the plugin otherwise falls back to scoped JSON-LD from visible block content.
Filters
These filters are public extension points. Filter callbacks must preserve the visible-content rule and should not add unrelated site-wide schema.
aculect_blocks_enable_faq_schemareceivesbool $enabledand can enable or disable FAQPage output.aculect_blocks_faq_schema_itemsreceivesarray $items, int $post_idand can adjust the complete FAQ items derived from a rendered Accordion block.aculect_blocks_enable_breadcrumb_schemareceivesbool $enabledand can enable or disable BreadcrumbList output.
0.1.0 Upgrade Notes
This is the first public release. Install it as a new plugin and configure modules under Settings > Aculect Blocks. Do not rely on internal PHP classes as extension points; the filters above are the supported 0.1.0 contract.