Skip to content

Releases: marcelbest/json-ld-php-for-wordpress

v1.0.1

16 Jun 12:06

Choose a tag to compare

What's New in v1.0.1

A small correctness fix for the BlogPosting date fields.

WordPress writes post_modified on every draft save, so a post drafted before publishing could end up with a dateModified earlier than its datePublished. The BlogPosting node now clamps dateModified so it can never precede datePublished.

  • Fixed: dateModified no longer precedes datePublished in the BlogPosting node

v1.0.0

12 Jun 07:53

Choose a tag to compare

What's New in v1.0.0

First public release — a single, fully cross-linked Schema.org @graph per page for classic WordPress themes, in one PHP file with no plugin and no build step.

Extracted from the classic theme on marcelbest.com and generalised for reuse: the site-specific coupling (an SEO plugin's options, a custom social-links widget, hardcoded identity and paths) was replaced with WordPress-core defaults and filters, so the file runs on any classic theme without a dependency. Full walkthrough: https://marcelbest.com/webdesign/2026/json-ld-fuer-wordpress-ohne-plugin/

  • One <script type="application/ld+json"> block per page, with all nodes cross-linked by stable @ids — no duplicated, orphaned markup
  • Context-aware nodes: WebSite and Person always; BlogPosting on single posts; Blog on the front page; CollectionPage on archives; WebPage on static pages; BreadcrumbList on multi-level paths
  • BlogPosting with a SpeakableSpecification (headline + lead) for answer engines; optional fields (image, articleSection, keywords, description) only emitted when real data exists
  • Automatic FAQPage node derived server-side from a Core Accordion block (WordPress 6.9+), linked to the BlogPosting
  • Everything site-specific is overridable via filters — person identity, social sameAs, description, Speakable selectors, FAQ block, blog URL, breadcrumbs, plus a full-graph escape hatch