{"id":375048,"date":"2026-09-27T05:10:48","date_gmt":"2026-09-27T05:10:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/csm-custom-schema-manager\/"},"modified":"2026-09-27T05:10:39","modified_gmt":"2026-09-27T05:10:39","slug":"markuploom-json-ld","status":"publish","type":"plugin","link":"https:\/\/haz.wordpress.org\/plugins\/markuploom-json-ld\/","author":23570096,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.2","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"MarkupLoom \u2013 JSON-LD Manager","header_author":"Saubhik M","header_description":"Create and manage JSON-LD structured data for WordPress and WooCommerce.","assets_banners_color":"a7c0d7","last_updated":"2026-09-27 05:10:39","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/profiles.wordpress.org\/saubhikm","rating":0,"author_block_rating":0,"active_installs":0,"downloads":48,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"saubhikm","date":"2026-09-27 05:10:39","revision":3715012}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3715011,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3715011,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3715011,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3715011,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[2516,1117,186,1121,286],"plugin_category":[45,55],"plugin_contributors":[282073],"plugin_business_model":[],"class_list":["post-375048","plugin","type-plugin","status-publish","hentry","plugin_tags-json-ld","plugin_tags-schema","plugin_tags-seo","plugin_tags-structured-data","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-seo-and-marketing","plugin_contributors-saubhikm","plugin_committers-saubhikm"],"banners":{"banner":"https:\/\/ps.w.org\/markuploom-json-ld\/assets\/banner-772x250.png?rev=3715011","banner_2x":"https:\/\/ps.w.org\/markuploom-json-ld\/assets\/banner-1544x500.png?rev=3715011","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/markuploom-json-ld\/assets\/icon-128x128.png?rev=3715011","icon_2x":"https:\/\/ps.w.org\/markuploom-json-ld\/assets\/icon-256x256.png?rev=3715011","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>MarkupLoom provides a focused interface for adding structured data to individual WordPress content items.<\/p>\n\n<p>Multiple schemas can be assigned to the same Page, Post, or WooCommerce Product. Enabled individual schemas are combined into a JSON-LD @graph.<\/p>\n\n<p>The plugin also provides a global schema manager for site-wide rules.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Multiple schemas per Page, Post, and WooCommerce Product.<\/li>\n<li>Checkbox-based Post Type selection for global schemas.<\/li>\n<li>Individual schema controls inside the WordPress editor.<\/li>\n<li>JSON-LD @graph output for multiple individual schemas.<\/li>\n<li>Product schema support for WooCommerce.<\/li>\n<li>Custom JSON-LD support.<\/li>\n<li>Dynamic placeholders for common WordPress values.<\/li>\n<li>Global schema rules for the entire site, homepage, singular content, or selected post types.<\/li>\n<li>Schema type allow-list.<\/li>\n<li>Nonce and capability checks.<\/li>\n<li>Safe JSON-LD encoding to prevent script-tag breakout.<\/li>\n<\/ul>\n\n<h3>Supported Schema Types<\/h3>\n\n<p>Pages:<\/p>\n\n<ul>\n<li>WebPage<\/li>\n<li>AboutPage<\/li>\n<li>ContactPage<\/li>\n<li>FAQPage<\/li>\n<li>LocalBusiness<\/li>\n<li>BreadcrumbList<\/li>\n<li>Organization<\/li>\n<li>Custom<\/li>\n<\/ul>\n\n<p>Posts:<\/p>\n\n<ul>\n<li>Article<\/li>\n<li>BlogPosting<\/li>\n<li>NewsArticle<\/li>\n<li>FAQPage<\/li>\n<li>HowTo<\/li>\n<li>BreadcrumbList<\/li>\n<li>WebPage<\/li>\n<li>Organization<\/li>\n<li>Custom<\/li>\n<\/ul>\n\n<p>Products:<\/p>\n\n<ul>\n<li>Product<\/li>\n<li>BreadcrumbList<\/li>\n<li>FAQPage<\/li>\n<li>WebPage<\/li>\n<li>Organization<\/li>\n<li>Custom<\/li>\n<\/ul>\n\n<h3>Custom JSON-LD<\/h3>\n\n<p>Custom JSON-LD must be valid JSON.<\/p>\n\n<p>Supported placeholders:<\/p>\n\n<ul>\n<li><code>{{title}}<\/code><\/li>\n<li><code>{{url}}<\/code><\/li>\n<li><code>{{description}}<\/code><\/li>\n<li><code>{{image}}<\/code><\/li>\n<li><code>{{author}}<\/code><\/li>\n<li><code>{{datePublished}}<\/code><\/li>\n<li><code>{{dateModified}}<\/code><\/li>\n<\/ul>\n\n<p>Example:<\/p>\n\n<p>{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"WebPage\",\n  \"name\": {{title}},\n  \"url\": {{url}},\n  \"description\": {{description}}\n}<\/p>\n\n<p>Quoted full-value placeholders are also supported.<\/p>\n\n<h3>Multiple Schemas<\/h3>\n\n<p>A single content item may contain multiple schemas, such as:<\/p>\n\n<ul>\n<li>Product<\/li>\n<li>BreadcrumbList<\/li>\n<li>FAQPage<\/li>\n<\/ul>\n\n<p>Enabled individual schemas are emitted together in a JSON-LD <code>@graph<\/code>.<\/p>\n\n<h3>WooCommerce<\/h3>\n\n<p>When WooCommerce is active, Product schema can use:<\/p>\n\n<ul>\n<li>Product name<\/li>\n<li>Description<\/li>\n<li>URL<\/li>\n<li>SKU<\/li>\n<li>Product image<\/li>\n<li>Price<\/li>\n<li>Currency<\/li>\n<li>Stock availability<\/li>\n<li>Brand<\/li>\n<li>GTIN<\/li>\n<li>MPN<\/li>\n<\/ul>\n\n<h3>Security<\/h3>\n\n<p>MarkupLoom validates custom JSON before storing it and re-encodes schema data with <code>wp_json_encode()<\/code> and JSON hexadecimal encoding flags before placing it inside a JSON-LD script element.<\/p>\n\n<p>Administrator-only configuration is protected by WordPress capability and nonce checks.<\/p>\n\n<h3>Compatibility<\/h3>\n\n<ul>\n<li>WordPress 6.4 or later.<\/li>\n<li>PHP 7.4 or later.<\/li>\n<li>WooCommerce is optional.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>markuploom-json-ld<\/code> plugin folder to <code>\/wp-content\/plugins\/<\/code>, or upload the ZIP through Plugins \u2192 Add New Plugin.<\/li>\n<li>Activate MarkupLoom.<\/li>\n<li>Edit a Page, Post, or WooCommerce Product to configure individual schemas.<\/li>\n<li>Use MarkupLoom in the WordPress admin menu for global schema rules.<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial MarkupLoom release.<\/li>\n<li>Added global schema manager.<\/li>\n<li>Added multiple individual schemas for Pages, Posts, and WooCommerce Products.<\/li>\n<li>Added JSON-LD graph output.<\/li>\n<li>Added WooCommerce Product schema support.<\/li>\n<li>Added custom JSON-LD and placeholders.<\/li>\n<li>Added secure JSON-LD output.<\/li>\n<li>Replaced global schema Post Type multi-select with checkbox selection.<\/li>\n<\/ul>","raw_excerpt":"Create and manage JSON-LD structured data for WordPress Pages, Posts, and WooCommerce Products.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/haz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/375048","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/haz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/haz.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/haz.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=375048"}],"author":[{"embeddable":true,"href":"https:\/\/haz.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/saubhikm"}],"wp:attachment":[{"href":"https:\/\/haz.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=375048"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/haz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=375048"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/haz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=375048"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/haz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=375048"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/haz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=375048"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/haz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=375048"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}