{"id":377005,"date":"2026-09-30T11:50:48","date_gmt":"2026-09-30T11:50:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/easy-schema-by-shied-world\/"},"modified":"2026-09-30T11:50:31","modified_gmt":"2026-09-30T11:50:31","slug":"shied-world-schema-markup","status":"publish","type":"plugin","link":"https:\/\/bel.wordpress.org\/plugins\/shied-world-schema-markup\/","author":23568898,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.2","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"SHIED WORLD Schema Markup","header_author":"SHIED WORLD","header_description":"Add custom JSON-LD schema markup to any page, post, or custom post type, plus site-wide schema. Built by SHIED WORLD.","assets_banners_color":"","last_updated":"2026-09-30 11:50:31","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/shiedworld.com\/shied-world-schema-markup-wordpress-plugin\/","header_author_uri":"https:\/\/shiedworld.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":38,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"shiedworld","date":"2026-09-30 11:50:31","revision":3721142}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3721161,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[2516,1117,2991,186,1121],"plugin_category":[55],"plugin_contributors":[283689],"plugin_business_model":[],"class_list":["post-377005","plugin","type-plugin","status-publish","hentry","plugin_tags-json-ld","plugin_tags-schema","plugin_tags-schema-org","plugin_tags-seo","plugin_tags-structured-data","plugin_category-seo-and-marketing","plugin_contributors-shiedworld","plugin_committers-shiedworld"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/shied-world-schema-markup\/assets\/icon-128x128.png?rev=3721161","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>SHIED WORLD Schema Markup is a universal schema markup plugin for WordPress. Add named JSON-LD schema blocks to pages, posts, and custom post types, and define site-wide schema that outputs on every page.<\/p>\n\n<p>Features:<\/p>\n\n<ul>\n<li>Site-wide schema builder (outputs on every page)<\/li>\n<li>Page and post level named schema blocks<\/li>\n<li>The complete official schema.org vocabulary, with property fields for every type, plus Custom \/ Other raw JSON-LD<\/li>\n<li>Placeholder variables such as {{post_title}}, {{post_url}}, {{site_name}}, and more<\/li>\n<li>Merged frontend output as a single application\/ld+json @graph script in the footer<\/li>\n<li>Post type checklist so the meta box only appears where you want it<\/li>\n<li>Rule-based suggestion engine with no external API calls<\/li>\n<li>Optional AI suggestions using your own OpenAI, Anthropic, Gemini, DeepSeek, Groq, or OpenRouter key (encrypted at rest)<\/li>\n<li>Google Rich Results Test links and live JSON-LD preview<\/li>\n<\/ul>\n\n<h3>Optional AI Suggestions and External Services<\/h3>\n\n<p>The AI suggestion feature is optional. The plugin ships with no API key, and nothing is sent to any third party service unless you configure this feature yourself.<\/p>\n\n<p>To use it you open the AI BYOK tab, select a provider, choose a model, and save your own API key for that provider. After that the plugin sends a request to the provider you selected, using the key you saved, and only at the moment you click the Suggest with AI button while editing a post. No request is made while you browse the settings, save a post, or view the front end, and no request is made automatically or by default.<\/p>\n\n<p>The data sent depends on the \"Send full post content to AI suggestions\" option, which is OFF by default.<\/p>\n\n<p>By default (full content mode OFF) the request contains:\n* The post type (or 'site' for site-wide suggestions)\n* The post title (or site name)\n* The post's headings (H1 to H6), in document order, up to 25 of them, with their level\n* Up to 350 characters of the post body (HTML tags and shortcodes stripped)\n* The post's primary category or tag, if one is assigned\n* The post's manual excerpt, up to 300 characters, when the post has one set; for site-wide suggestions the site description is sent instead\n* The post permalink URL (or site home URL)<\/p>\n\n<p>If you turn full content mode ON, the same list is sent with a larger body allowance (up to 3,500 characters instead of 350). That option is off by default because a short summary plus the heading outline is enough to classify the page, and sending the whole body costs significantly more tokens and can reach free-tier API limits faster.<\/p>\n\n<p>The plugin also queries your provider's own models endpoint once every 24 hours, using your saved key for that provider, to populate the model dropdown. That request sends no post or site content. If it fails, or if no key is saved yet, the plugin falls back to a short built-in list of that provider's documented models and makes no further requests until the cache expires.<\/p>\n\n<p>No other content from your site is sent. The reply from the provider is a short list of suggested schema.org types with a one-line reason each. These appear as separate cards in the editor and a schema block is created only if you accept one.<\/p>\n\n<p>The request goes directly from your site to the provider you chose, using that provider's own API endpoint. It is not routed through any server operated by the plugin author. The plugin author has no access to your key and receives no copy of the data you send. The provider's own terms of service and privacy policy apply to that data.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin contacts a third party service only when you enable the optional AI suggestion feature, choose a provider, and save your own API key for that provider. Data is sent only when the user clicks the suggestion button, using their own API key. The services that can be used are listed below, each with links to its own privacy policy and terms:<\/p>\n\n<ul>\n<li>OpenAI: Privacy Policy (https:\/\/openai.com\/policies\/privacy-policy\/) and Terms of Use (https:\/\/openai.com\/policies\/terms-of-use\/)<\/li>\n<li>Anthropic: Privacy Policy (https:\/\/www.anthropic.com\/legal\/privacy) and Commercial Terms (https:\/\/www.anthropic.com\/legal\/commercial-terms)<\/li>\n<li>Google Gemini: Privacy Policy (https:\/\/policies.google.com\/privacy) and Terms of Service (https:\/\/ai.google.dev\/gemini-api\/terms)<\/li>\n<li>DeepSeek: Privacy Policy (https:\/\/cdn.deepseek.com\/policies\/en-US\/deepseek-privacy-policy.html)<\/li>\n<li>Groq: Privacy Policy (https:\/\/groq.com\/privacy-policy\/) and Terms (https:\/\/groq.com\/terms-of-use\/)<\/li>\n<li>OpenRouter: Privacy Policy (https:\/\/openrouter.ai\/privacy) and Terms of Service (https:\/\/openrouter.ai\/terms)<\/li>\n<\/ul>\n\n<h3>Credits and Bundled Data<\/h3>\n\n<p>This plugin bundles the official schema.org vocabulary, stored at includes\/data\/schemaorg-vocabulary.json, and uses it as the source of truth for the schema types and properties offered in the builder.<\/p>\n\n<p>The schema.org vocabulary is published by the schema.org project. The copyrights in the schema are licensed under the Creative Commons Attribution-ShareAlike License, version 3.0. To view a copy of that license, visit https:\/\/creativecommons.org\/licenses\/by-sa\/3.0\/.<\/p>\n\n<p>The vocabulary file is included as published, stored locally as a JSON file. No endorsement by the schema.org project or its sponsors is implied.<\/p>\n\n<p>The social media icons shown on the plugin settings screen are the official brand glyphs for each platform, taken from Font Awesome Free. Font Awesome Free icons are released under the Creative Commons Attribution 4.0 International license, https:\/\/creativecommons.org\/licenses\/by\/4.0\/. Each icon is used only to link to the plugin author's own profile on that platform.<\/p>\n\n<p>The Fiverr, Upwork and WhatsApp icons used in the settings page header and on the SEO Services tab are taken from Simple Icons, https:\/\/simpleicons.org\/, which releases its icon data under CC0 1.0 Universal, https:\/\/creativecommons.org\/publicdomain\/zero\/1.0\/. Each of those icons is used only to link to the platform it represents, and the trademarks in those logos remain the property of their respective owners.<\/p>\n\n<p>The plugin code itself is licensed under the GNU General Public License, version 3 or later. See the License and License URI fields above. Version 3 or later was chosen deliberately: the bundled schema.org vocabulary is licensed CC BY-SA 3.0, which is compatible with GPLv3 but not with GPLv2 alone, so GPLv3-or-later lets the plugin and that bundled data be redistributed together without a licensing conflict.<\/p>\n\n<h3>Additional Information<\/h3>\n\n<p>Plugin home page: https:\/\/shiedworld.com\/shied-world-schema-markup-wordpress-plugin\/<\/p>\n\n<p>Developer: SHIED WORLD, https:\/\/shiedworld.com\/<\/p>\n\n<p>Privacy Policy: https:\/\/shiedworld.com\/privacy-policy-shied-world-schema-markup\/<\/p>\n\n<p>Terms and Conditions: https:\/\/shiedworld.com\/terms-conditions-shied-world-schema-markup\/<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>shied-world-schema-markup<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the Plugins menu in WordPress.<\/li>\n<li>Open the SHIED WORLD Schema Markup page in the admin menu to configure Site Schema and other tabs.<\/li>\n<li>Edit any enabled post type and use the SHIED WORLD Schema Markup meta box.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20custom%20post%20types%3F\"><h3>Does this work with custom post types?<\/h3><\/dt>\n<dd><p>Yes. Enable them under Post Type Settings. The list is built from get_post_types() so theme and plugin post types are included.<\/p><\/dd>\n<dt id=\"are%20ai%20keys%20stored%20in%20plain%20text%3F\"><h3>Are AI keys stored in plain text?<\/h3><\/dt>\n<dd><p>No. New keys are encrypted with authenticated AES-256-GCM using salt material from wp-config.php, preferring AUTH_KEY. The plugin never ships a shared fallback key. Keys saved by older, unauthenticated CBC encryption are intentionally rejected; enter those keys again once to save them in the current format.<\/p><\/dd>\n<dt id=\"what%20data%20is%20sent%20when%20i%20use%20an%20ai%20suggestion%3F\"><h3>What data is sent when I use an AI suggestion?<\/h3><\/dt>\n<dd><p>Data is sent only when you click Suggest with AI in the editor, using your own API key saved for a provider you chose. What that request contains depends on the \"Send full post content to AI suggestions\" option, which is off by default. With that option off, the request contains the post type (or 'site' for site-wide suggestions), the post title (or site name), the post's headings (H1 to H6) in document order up to 25 of them with their level, up to 350 characters of the post body with HTML tags and shortcodes stripped, the post's primary category or tag if one is assigned, the post's manual excerpt up to 300 characters when the post has one set (or the site description for site-wide suggestions), and the post permalink URL (or site home URL). Turning full content mode on sends the same list with a larger body allowance, up to 3,500 characters instead of 350. No excerpt is generated when a post has none set, and no post body is sent at all for site-wide suggestions. The request goes directly to that provider and is governed by that provider's terms and privacy policy. Nothing is sent by default, and nothing is sent automatically.<\/p><\/dd>\n<dt id=\"where%20is%20schema%20output%20printed%3F\"><h3>Where is schema output printed?<\/h3><\/dt>\n<dd><p>In wp_footer as one script tag with type application\/ld+json using the @graph structure. If there is nothing to output, no script tag is printed.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Renamed to SHIED WORLD Schema Markup (slug shied-world-schema-markup) at the request of the WordPress.org review team. The plugin folder name, plugin file, and text domain all changed accordingly, so any existing site must delete the old easy-schema-by-shied-world folder and upload this package fresh.<\/li>\n<li>Fixed AI suggestions reporting \"This page already has good schema coverage\" when the provider had actually cut the response short. The cutoff is now detected from the provider's finish reason and reported as a retryable error instead.<\/li>\n<li>Raised the AI response token limit and disabled unnecessary model reasoning, so a full reply is no longer truncated to a few unusable tokens.<\/li>\n<li>Schema fields that use a placeholder now show the resolved value, such as the current page URL, instead of a raw placeholder token.<\/li>\n<li>Placeholders that cannot be resolved are now omitted from the output instead of publishing the literal token text into the page.<\/li>\n<\/ul>","raw_excerpt":"Add custom JSON-LD schema markup to any page, post, or custom post type, plus site-wide schema. Built by SHIED WORLD.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/377005","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=377005"}],"author":[{"embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/shiedworld"}],"wp:attachment":[{"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=377005"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=377005"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=377005"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=377005"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=377005"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=377005"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}