{"id":302780,"date":"2026-05-19T11:23:53","date_gmt":"2026-05-19T11:23:53","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/codedication-schema-blocks\/"},"modified":"2026-05-19T11:23:36","modified_gmt":"2026-05-19T11:23:36","slug":"codedication-schema-blocks","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/codedication-schema-blocks\/","author":23479631,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"6.9.4","requires":"6.5","requires_php":"8.0","requires_plugins":null,"header_name":"Codedication Schema Blocks","header_author":"Codedication","header_description":"FAQ schema and review schema Gutenberg blocks that generate Schema.org JSON-LD for rich snippets and structured data SEO.","assets_banners_color":"153045","last_updated":"2026-05-19 11:23:36","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/codedication.com","header_plugin_uri":"https:\/\/codedication.com\/plugins\/schema-blocks","header_author_uri":"https:\/\/codedication.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":20,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"codedication","date":"2026-05-19 11:23:36"}},"upgrade_notice":{"1.0.1":"<p>Fixes the Settings page appearing empty under the centralized admin. Saved values now hydrate correctly. Recommended upgrade.<\/p>","1.0.0":"<p>First release \u2014 FAQ Block with FAQPage schema and Review Block with star ratings and JSON-LD output.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3537180,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3537180,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3537180,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3537180,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"codedication\/schema-faq":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"codedication\/schema-faq","version":"1.0.0","title":"FAQ Schema","category":"schema-blocks","description":"Create an FAQ section with Schema.org markup for better SEO.","keywords":["faq","questions","answers","schema","seo"],"textdomain":"codedication-schema-blocks","attributes":{"closeOthers":{"type":"boolean","default":false},"description":{"type":"string","default":""}},"supports":{"html":false,"anchor":true,"className":true,"align":["wide","full"],"spacing":{"margin":true,"padding":true},"color":{"background":true,"text":true},"typography":{"fontSize":true,"lineHeight":true,"letterSpacing":true,"textTransform":true,"fontStyle":true,"fontWeight":true,"textDecoration":true,"fontVariant":true},"interactivity":true},"render":"file:.\/render.php","editorScript":"file:.\/index.js","editorStyle":"file:.\/index.css","style":"file:.\/style-index.css"},"codedication\/schema-review":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"codedication\/schema-review","version":"1.0.0","title":"Review Schema","category":"schema-blocks","description":"Create a review with star ratings and Schema.org markup for rich snippets.","keywords":["review","rating","stars","schema","seo"],"textdomain":"codedication-schema-blocks","attributes":{"blockId":{"type":"string"},"itemName":{"type":"string","default":""},"itemType":{"type":"string","default":"Product","enum":["Product","LocalBusiness","Movie","Book","Restaurant","Thing"]},"itemImage":{"type":"string","default":""},"itemDescription":{"type":"string","default":""},"itemUrl":{"type":"string","default":""},"ratingValue":{"type":"number","default":0},"bestRating":{"type":"number","default":5},"worstRating":{"type":"number","default":1},"authorName":{"type":"string","default":""},"authorType":{"type":"string","default":"Person","enum":["Person","Organization"]},"datePublished":{"type":"string","default":""},"reviewBody":{"type":"string","default":""},"publisherName":{"type":"string","default":""},"publisherType":{"type":"string","default":"Organization","enum":["Organization","Person"]},"reviewAspect":{"type":"string","default":""},"positiveNotes":{"type":"array","default":[],"items":{"type":"string"}},"negativeNotes":{"type":"array","default":[],"items":{"type":"string"}},"ratingExplanation":{"type":"string","default":""}},"supports":{"html":false,"anchor":true,"className":true,"align":["wide"],"spacing":{"margin":true,"padding":true},"color":{"background":true,"text":true},"typography":{"fontSize":true}},"editorScript":"file:.\/index.js","editorStyle":"file:.\/index.css","style":"file:.\/style-index.css"}},"tagged_versions":["1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3537180,"resolution":"1","location":"assets","locale":"","width":2560,"height":1440},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3537180,"resolution":"2","location":"assets","locale":"","width":2560,"height":1440},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3537180,"resolution":"3","location":"assets","locale":"","width":2560,"height":1440},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3537180,"resolution":"4","location":"assets","locale":"","width":2560,"height":1440},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3537180,"resolution":"5","location":"assets","locale":"","width":2560,"height":1440},"screenshot-6.jpg":{"filename":"screenshot-6.jpg","revision":3537180,"resolution":"6","location":"assets","locale":"","width":2560,"height":1440},"screenshot-7.jpg":{"filename":"screenshot-7.jpg","revision":3537180,"resolution":"7","location":"assets","locale":"","width":2560,"height":1440}},"screenshots":{"1":"FAQ Block styling \u2014 Color, Typography and Dimensions controls in the Inspector sidebar","2":"FAQ Block with a custom theme \u2014 fully stylable to match your brand","3":"FAQ Block frontend output \u2014 clean accordion rendered on the published page","4":"Review Block in the editor \u2014 star rating, item type selector and review body with 4.5\/5 rating","5":"Review Block author &amp; publisher \u2014 date, Author (Person) and Publisher (Organization) fields for valid Review schema","6":"Review Block frontend output \u2014 headline, rating, review body and positive\/negative notes","7":"Settings page \u2014 Site Identity (Organization\/Person), JSON-LD preview, completeness indicator and \"Test in Google Rich Results\" shortcut"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[178627,2516,230403,2293,1121],"plugin_category":[],"plugin_contributors":[263511,162622],"plugin_business_model":[],"class_list":["post-302780","plugin","type-plugin","status-publish","hentry","plugin_tags-faq-schema","plugin_tags-json-ld","plugin_tags-review-schema","plugin_tags-star-rating","plugin_tags-structured-data","plugin_contributors-codedication","plugin_contributors-pauloc","plugin_committers-codedication"],"banners":{"banner":"https:\/\/ps.w.org\/codedication-schema-blocks\/assets\/banner-772x250.png?rev=3537180","banner_2x":"https:\/\/ps.w.org\/codedication-schema-blocks\/assets\/banner-1544x500.png?rev=3537180","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/codedication-schema-blocks\/assets\/icon-128x128.png?rev=3537180","icon_2x":"https:\/\/ps.w.org\/codedication-schema-blocks\/assets\/icon-256x256.png?rev=3537180","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/codedication-schema-blocks\/assets\/screenshot-1.jpg?rev=3537180","caption":"FAQ Block styling \u2014 Color, Typography and Dimensions controls in the Inspector sidebar"},{"src":"https:\/\/ps.w.org\/codedication-schema-blocks\/assets\/screenshot-2.jpg?rev=3537180","caption":"FAQ Block with a custom theme \u2014 fully stylable to match your brand"},{"src":"https:\/\/ps.w.org\/codedication-schema-blocks\/assets\/screenshot-3.jpg?rev=3537180","caption":"FAQ Block frontend output \u2014 clean accordion rendered on the published page"},{"src":"https:\/\/ps.w.org\/codedication-schema-blocks\/assets\/screenshot-4.jpg?rev=3537180","caption":"Review Block in the editor \u2014 star rating, item type selector and review body with 4.5\/5 rating"},{"src":"https:\/\/ps.w.org\/codedication-schema-blocks\/assets\/screenshot-5.jpg?rev=3537180","caption":"Review Block author &amp; publisher \u2014 date, Author (Person) and Publisher (Organization) fields for valid Review schema"},{"src":"https:\/\/ps.w.org\/codedication-schema-blocks\/assets\/screenshot-6.jpg?rev=3537180","caption":"Review Block frontend output \u2014 headline, rating, review body and positive\/negative notes"},{"src":"https:\/\/ps.w.org\/codedication-schema-blocks\/assets\/screenshot-7.jpg?rev=3537180","caption":"Settings page \u2014 Site Identity (Organization\/Person), JSON-LD preview, completeness indicator and \"Test in Google Rich Results\" shortcut"}],"raw_content":"<!--section=description-->\n<h4>FAQ Schema &amp; Review Schema Blocks<\/h4>\n\n<p>Schema Blocks adds <strong>FAQ schema<\/strong> and <strong>Review schema<\/strong> directly to the WordPress block editor \u2014 no shortcodes, no custom fields, no coding required. Each block automatically generates valid <strong>JSON-LD structured data<\/strong> that Google can read to display <strong>rich results<\/strong> in search: FAQ dropdowns, star ratings, and review snippets.<\/p>\n\n<p>Built for Gutenberg. Works with Yoast SEO, Rank Math, and AIOSEO.<\/p>\n\n<h4>Why Schema Markup Matters<\/h4>\n\n<p>Schema markup helps search engines understand your content better, resulting in:<\/p>\n\n<ul>\n<li><strong>Google Rich Results<\/strong> \u2014 FAQ dropdowns and star ratings displayed directly in search results<\/li>\n<li><strong>Better CTR<\/strong> \u2014 More clicks from visually enhanced search listings<\/li>\n<li><strong>Voice Search<\/strong> \u2014 Structured Q&amp;A content ready for voice assistants<\/li>\n<li><strong>Knowledge Graph<\/strong> \u2014 Potential for featured snippets and entity recognition<\/li>\n<\/ul>\n\n<h4>Features<\/h4>\n\n<p><strong>FAQ Block<\/strong> \u2014 <a href=\"https:\/\/developers.google.com\/search\/docs\/appearance\/structured-data\/faqpage\">Google FAQ Rich Result<\/a><\/p>\n\n<ul>\n<li>Displays as expandable Q&amp;A dropdowns directly in Google Search results<\/li>\n<li>Accordion-style interface in the block editor with full styling control<\/li>\n<li>Option to close others when one opens<\/li>\n<li>Proper FAQPage \/ Question \/ Answer schema.org markup<\/li>\n<\/ul>\n\n<p><strong>Review Block<\/strong> \u2014 <a href=\"https:\/\/developers.google.com\/search\/docs\/appearance\/structured-data\/review-snippet\">Google Review Snippet<\/a><\/p>\n\n<ul>\n<li>Displays star ratings (1\u20135) in Google Search results for Products, Books, Local Businesses, and more<\/li>\n<li>Multiple item types: Product, LocalBusiness, Movie, Book, Restaurant, Thing<\/li>\n<li>Author and publisher information, publication date, review body<\/li>\n<li>Positive\/negative notes and rating explanation<\/li>\n<\/ul>\n\n<p><strong>Settings Page<\/strong> \u2014 Site-wide structured data from a single dashboard<\/p>\n\n<ul>\n<li><strong>Site Identity<\/strong> \u2014 Organization or Person schema with name, logo, description, contact, social profiles, and founding year<\/li>\n<li><strong>WebSite schema<\/strong> \u2014 Site name, URL, and SearchAction for Google sitelinks search box<\/li>\n<li><strong>Breadcrumbs<\/strong> \u2014 BreadcrumbList schema with separator and home label configuration<\/li>\n<li><strong>Block management<\/strong> \u2014 Enable or disable individual schema blocks<\/li>\n<li><strong>JSON-LD preview<\/strong> \u2014 Live preview of your site-wide schema output with one-click copy and \"Test in Google Rich Results\" button<\/li>\n<li><strong>Completeness indicator<\/strong> \u2014 Visual progress ring showing how much of your identity schema is filled in<\/li>\n<\/ul>\n\n<p><strong>Built for SEO workflows<\/strong>\n* Automatic JSON-LD output in the page head \u2014 single <code>@graph<\/code> array for multiple schemas\n* Compatible with Google Rich Results Test and Schema.org Validator\n* Works directly in the Gutenberg block editor<\/p>\n\n<h4>Compatible with Popular SEO Plugins<\/h4>\n\n<p>Schema Blocks works <strong>alongside<\/strong> your existing SEO plugin \u2014 it does not replace it:<\/p>\n\n<ul>\n<li><strong>Yoast SEO<\/strong> \u2014 Yoast handles meta tags and site-wide schema; Schema Blocks handles content-level schema<\/li>\n<li><strong>Rank Math<\/strong> \u2014 Disable duplicate schema types in Rank Math settings if needed<\/li>\n<li><strong>AIOSEO<\/strong> \u2014 Fully compatible; disable conflicting schema modules in AIOSEO<\/li>\n<li><strong>The SEO Framework<\/strong> \u2014 Compatible out of the box<\/li>\n<\/ul>\n\n<p>If you already have a plugin generating FAQ or Review schema for entire pages, we recommend disabling that specific schema type to avoid duplication.<\/p>\n\n<h4>How It Works<\/h4>\n\n<ol>\n<li>Add a Schema Block (FAQ or Review) to any post or page in the block editor<\/li>\n<li>Fill in your content \u2014 questions and answers, ratings, review details<\/li>\n<li>The plugin outputs valid JSON-LD structured data in the page <code>&lt;head&gt;<\/code><\/li>\n<li>Google reads the schema markup and may display rich results: FAQ dropdowns, star ratings, review snippets<\/li>\n<\/ol>\n\n<h4>Validation<\/h4>\n\n<p>All schema output follows Google's structured data guidelines. Test your pages with:\n* <a href=\"https:\/\/search.google.com\/test\/rich-results\">Google Rich Results Test<\/a>\n* <a href=\"https:\/\/validator.schema.org\/\">Schema.org Validator<\/a><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/cddc-schema-blocks\/<\/code><\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress<\/li>\n<li>Go to Settings \u2192 Schema Blocks to configure options<\/li>\n<li>Add Schema blocks in the editor under \"Schema Blocks\" category<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20guarantee%20rich%20snippets%20in%20google%3F\"><h3>Will this guarantee rich snippets in Google?<\/h3><\/dt>\n<dd><p>No. Google decides whether to show rich snippets based on many factors. Proper schema markup improves your chances but doesn't guarantee display.<\/p><\/dd>\n<dt id=\"does%20this%20conflict%20with%20yoast%20seo%20or%20rank%20math%3F\"><h3>Does this conflict with Yoast SEO or Rank Math?<\/h3><\/dt>\n<dd><p>Schema Blocks focuses on content-level schema (FAQ, Review) which complements site-wide schema from SEO plugins. We recommend disabling duplicate schema types if your SEO plugin also provides them. See the \"Compatible with Popular SEO Plugins\" section above for plugin-specific guidance.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20full%20site%20editing%20%28fse%29%20themes%3F\"><h3>Does it work with Full Site Editing (FSE) themes?<\/h3><\/dt>\n<dd><p>Yes. Schema Blocks uses the standard Gutenberg block API and works with any block theme, including FSE themes like Twenty Twenty-Four, Kadence Blocks, or GeneratePress.<\/p><\/dd>\n<dt id=\"do%20i%20need%20technical%20knowledge%3F\"><h3>Do I need technical knowledge?<\/h3><\/dt>\n<dd><p>No! Just add blocks and fill in the fields. The plugin handles all the technical JSON-LD markup automatically.<\/p><\/dd>\n<dt id=\"is%20the%20schema%20valid%3F\"><h3>Is the schema valid?<\/h3><\/dt>\n<dd><p>Yes. All output follows Schema.org specifications and Google's structured data guidelines.<\/p><\/dd>\n<dt id=\"what%20about%20performance%3F\"><h3>What about performance?<\/h3><\/dt>\n<dd><p>Schema is output as a single JSON-LD script in the page head. It's lightweight and doesn't affect page load time or Core Web Vitals.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20with%20woocommerce%3F\"><h3>Can I use this with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. You can add Review schema to any post type, including WooCommerce product pages.<\/p><\/dd>\n<dt id=\"does%20it%20add%20organization%20or%20person%20schema%3F\"><h3>Does it add Organization or Person schema?<\/h3><\/dt>\n<dd><p>Yes. The Settings page includes a Site Identity section where you configure Organization or Person schema with name, logo, description, email, phone, address, social profiles, and founding year. A completeness indicator shows your progress.<\/p><\/dd>\n<dt id=\"how%20many%20faq%20items%20can%20i%20add%3F\"><h3>How many FAQ items can I add?<\/h3><\/dt>\n<dd><p>There is no limit. Add as many Question\/Answer pairs as you need. All items are included in the FAQPage JSON-LD output.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix (WordPress.org review): conflict admin notice no longer emits an inline <code>&lt;script&gt;<\/code> tag \u2014 the dismiss handler is now an enqueued asset (<code>assets\/admin\/conflict-notice.js<\/code>) wired via <code>data-*<\/code> attributes on the notice container. The notice is also gated to the plugin Settings page and <code>plugins.php<\/code> only.<\/li>\n<li>Fix (WordPress.org review): FAQ block render callback no longer echoes a <code>WP_HTML_Tag_Processor<\/code>-mutated HTML string. The wrapper <code>&lt;div&gt;<\/code> is composed from escape-aware core APIs, and per-<code>&lt;details&gt;<\/code> Interactivity API directives are now injected via a <code>render_block<\/code> filter scoped to FAQ-ancestor renders. Foreign <code>data-wp-*<\/code> directives on nested blocks are preserved.<\/li>\n<li>Fix: Settings page rendered empty when the centralized Codedication admin was active. The plugin now registers a \"Settings\" tab inside the centralized renderer and the React app hydrates from saved option values.<\/li>\n<li>Fix: <code>useSlotFills<\/code> crash on older <code>@wordpress\/components<\/code>; the Advanced tab now derives its visibility from the internal fill bridge.<\/li>\n<li>Improvement: Completeness score redistributed to weigh Site Identity (75), Website (20) and Breadcrumbs (5) \u2014 previously only Site Identity counted, so the page could reach 100% while Website and Breadcrumbs were empty.<\/li>\n<li>New filter: <code>cddc_schema_blocks_is_settings_screen<\/code> lets integrations declare authoritatively when the React Settings app should be enqueued.<\/li>\n<li>Cleanup: removed dead code paths in <code>Admin_Integration<\/code>, dead <code>utils\/completeness-score.ts<\/code> \/ <code>utils\/json-ld-preview.ts<\/code> modules, the unused <code>HelpTip<\/code> component family and the divergent PHP <code>Site_Schema::get_completeness_score()<\/code> (the React UI is now the single source of truth for completeness).<\/li>\n<li>Fix: schema-conflict admin notice now links to the real settings screen (<code>Admin_Integration::get_settings_url()<\/code>) instead of guessing from <code>class_exists()<\/code>, so the link is correct in the fallback path where the shared admin package exists but its renderer is not yet available.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>FAQ Block with FAQPage schema<\/li>\n<li>FAQ Item child block<\/li>\n<li>Review Block with Review schema<\/li>\n<li>Support for 6 item types<\/li>\n<li>Settings page for block management<\/li>\n<li>Interactivity API for accordion<\/li>\n<\/ul>","raw_excerpt":"FAQ schema and Review schema blocks. Generate JSON-LD structured data, enable star ratings, and boost your rich snippets in Google Search.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/302780","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=302780"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/codedication"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=302780"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=302780"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=302780"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=302780"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=302780"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=302780"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}