From 27dae4022c40242afbbc04e9297a54c0054f88f4 Mon Sep 17 00:00:00 2001 From: Nazar Gargol Date: Tue, 30 Apr 2019 11:26:28 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fixed=20meta=20schema=20for=20'p?= =?UTF-8?q?age'=20context=20in=20dynamic=20routing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit refs #10082 - When specifying an existing page as an allias for collection, e.g: `data: page.it-is-a-page` it was failing to generate metadata --- core/server/data/meta/schema.js | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/core/server/data/meta/schema.js b/core/server/data/meta/schema.js index 9974f64539..9f13f278e0 100644 --- a/core/server/data/meta/schema.js +++ b/core/server/data/meta/schema.js @@ -38,15 +38,15 @@ function trimSchema(schema) { function trimSameAs(data, context) { var sameAs = []; - if (context === 'post') { - if (data.post.primary_author.website) { - sameAs.push(escapeExpression(data.post.primary_author.website)); + if (context === 'post' || context === 'page') { + if (data[context].primary_author.website) { + sameAs.push(escapeExpression(data[context].primary_author.website)); } - if (data.post.primary_author.facebook) { - sameAs.push(social.urls.facebook(data.post.primary_author.facebook)); + if (data[context].primary_author.facebook) { + sameAs.push(social.urls.facebook(data[context].primary_author.facebook)); } - if (data.post.primary_author.twitter) { - sameAs.push(social.urls.twitter(data.post.primary_author.twitter)); + if (data[context].primary_author.twitter) { + sameAs.push(social.urls.twitter(data[context].primary_author.twitter)); } } else if (context === 'author') { if (data.author.website) { @@ -69,6 +69,8 @@ function getPostSchema(metaData, data) { var description = metaData.excerpt ? escapeExpression(metaData.excerpt) : null, schema; + const context = data.page ? 'page' : 'post'; + schema = { '@context': 'https://schema.org', '@type': 'Article', @@ -79,12 +81,12 @@ function getPostSchema(metaData, data) { }, author: { '@type': 'Person', - name: escapeExpression(data.post.primary_author.name), + name: escapeExpression(data[context].primary_author.name), image: schemaImageObject(metaData.authorImage), url: metaData.authorUrl, - sameAs: trimSameAs(data, 'post'), - description: data.post.primary_author.metaDescription ? - escapeExpression(data.post.primary_author.metaDescription) : + sameAs: trimSameAs(data, context), + description: data[context].primary_author.metaDescription ? + escapeExpression(data[context].primary_author.metaDescription) : null }, headline: escapeExpression(metaData.metaTitle),