From 27658bd6051b409f95e994698f788477f97b394f Mon Sep 17 00:00:00 2001 From: Jan Henckens Date: Fri, 27 Feb 2026 13:55:10 +0100 Subject: [PATCH 1/2] Schema markup for news detail & overview --- templates/_site/_news/_entry.twig | 19 ++++++++++++++++++ templates/_site/_news/_index.twig | 33 ++++++++++++++++++++++++++++++- 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/templates/_site/_news/_entry.twig b/templates/_site/_news/_entry.twig index cba5d55d..639ee057 100644 --- a/templates/_site/_news/_entry.twig +++ b/templates/_site/_news/_entry.twig @@ -1,5 +1,7 @@ +{% do entry.setShouldRenderSchema(false) %} {% extends '_site/_layout' %} +{% set overview = craft.entries.section('newsOverview').one() %} {% set breadcrumbs = [ craft.entries.section('newsOverview').one(), entry, @@ -7,6 +9,23 @@ {% block content %} + {# @var schema \Spatie\SchemaOrg\Schema #} + {% set schema = seoFields.schema %} + {{ schema.article + .name(entry.title) + .headline(entry.title) + .image(entry.headerImage.one().getUrl() ?? '') + .articleSection(overview.title) + .author(entry.getUrl() ~ '#author') + .articleBody(entry.intro|striptags) + |raw }} + + {{ schema.organization + .id('author') + .url(currentSite.baseUrl) + .name("Statik") + |raw }} + {% embed "_site/_snippet/_content/_defaultHeader" %} {% block headerText %} {% include '_site/_snippet/_nav/_breadcrumb' %} diff --git a/templates/_site/_news/_index.twig b/templates/_site/_news/_index.twig index 4f05b20e..16c34fad 100644 --- a/templates/_site/_news/_index.twig +++ b/templates/_site/_news/_index.twig @@ -1,4 +1,5 @@ -{% extends "_site/_layout" %} +{% do entry.setShouldRenderSchema(false) %} +{% extends '_site/_layout' %} {% set breadcrumbs = [entry] %} @@ -145,6 +146,7 @@ {% endif %} {% if catQuery %} + {% set schemaCats = [] %} {% for category in categories.id(catQuery).all() %} {{ category.title }} + {% set schemaCats = schemaCats|merge([{ + "@type": "Thing", + "name": category.title, + }]) %} {% endfor %} {% endif %} {% endif %}
+ {% set schemaItems = [] %} {% for cardEntry in news %} {% include '_site/_snippet/_item/_card' %} + {% set schemaItems = schemaItems|merge([{ + "@type": "ListItem", + "position": loop.index, + "item": { + "@type": "NewsArticle", + "name": cardEntry.title, + "url": cardEntry.url, + } + }]) %} {% else %}
{{ "Geen items gevonden"|t }} @@ -179,4 +195,19 @@
+ + + {# @var schema \Spatie\SchemaOrg\Schema #} + {% set schema = seoFields.schema %} + {{ schema.collectionPage + .name(entry.title) + .url(entry.url) + .about(schemaCats ?? '') + .mainEntity({ + "@type": "ItemList", + "numberOfItems": schemaItems|length, + "itemListElement": schemaItems ?? '' + }) + |raw }} + {% endblock %} From 38790f3b2dc8bccf7cdc4a05d84ff1915a62ae58 Mon Sep 17 00:00:00 2001 From: Jan Henckens Date: Fri, 27 Feb 2026 14:09:17 +0100 Subject: [PATCH 2/2] =?UTF-8?q?Don=E2=80=99t=20hardcode=20name?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- templates/_site/_news/_entry.twig | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/_site/_news/_entry.twig b/templates/_site/_news/_entry.twig index 639ee057..f893c829 100644 --- a/templates/_site/_news/_entry.twig +++ b/templates/_site/_news/_entry.twig @@ -16,14 +16,14 @@ .headline(entry.title) .image(entry.headerImage.one().getUrl() ?? '') .articleSection(overview.title) - .author(entry.getUrl() ~ '#author') + .author(entry.getUrl() ~ '#organisation') .articleBody(entry.intro|striptags) |raw }} {{ schema.organization - .id('author') + .id('organisation') .url(currentSite.baseUrl) - .name("Statik") + .name(craft.app.systemName) |raw }} {% embed "_site/_snippet/_content/_defaultHeader" %}