如何对这个特定站点实施 "mainEntityOfPage"?

How to implement "mainEntityOfPage" to this specific site?

请看这里:https://developers.google.com/structured-data/testing-tool?url=https%253A%252F%252Fglamourina.net%252Fen%252F

如何才能正确地将 mainEntityOfPage 添加到此站点?

在 Google 文档示例中,我看到类似这样的内容:

<div itemscope itemtype="http://schema.org/NewsArticle">

  <meta itemscope itemprop="mainEntityOfPage"  itemType="https://schema.org/WebPage" itemid="https://google.com/article"/>

但这是一个单一作者的博客。它具有 blogPosts。

<article itemscope itemtype="https://schema.org/BlogPosting" class="singlearticles">

这样改就好了:

<article itemprop="blogPost" itemscope itemtype="https://schema.org/BlogPosting">
<meta itemscope itemprop="mainEntityOfPage"  itemType="https://schema.org/WebPage" itemid="https://linktoarticle"/>

不确定我是否理解 mainEntityOfPage 的用法。如果有人可以建议我如何处理这个特定的 case/website,我将不胜感激。不是通用的,因为每个网站都可以有不同的 mainEntityOfPage,但我需要了解并理解该网站的正确实施方式。

关于 Google 的微数据示例

Google的微数据示例无效。如果 meta 元素具有 itemprop 属性,则需要 content 属性 (details)。

我描述了 ,最直接的是 link 元素,它创建了 URL 值(而不是另一个微数据项):

<link itemprop="mainEntityOfPage" href="http://example.com/article-1" />

mainEntity

使用mainEntityOfPage if we first look its inverse property, mainEntity更容易理解。

对于包含 BlogPostingWebPage,我们可以:

<body itemscope itemtype="http://schema.org/WebPage">
  <article itemprop="mainEntity" itemscope itemtype="http://schema.org/BlogPosting">
  </article>
</body>

意思是:有一个WebPage和一个BlogPostingBlogPosting就是这个WebPage中描述的"primary entity"。如果涉及更多项目,则表示这一点特别有意义,例如 Person 描述作者,另外五个 BlogPosting 相关 post 项目, WebSite 项目给出一些元数据等。感谢 mainEntity/mainEntityOfPage,消费者可以了解该页面上的 primary/main 项目是什么(即该页面代表什么)。

mainEntityOfPage

以下带有 mainEntityOfPage 的示例将产生与上面带有 mainEntity 的示例等效的结构化数据:

<article itemscope itemtype="http://schema.org/BlogPosting">
  <div itemprop="mainEntityOfPage" itemscope itemtype="http://schema.org/WebPage">
  </div>
</article>

如您所见,BlogPosting 项的元素包含 WebPage 项的元素。这当然是相当不寻常的标记。

但是 mainEntityOfPage 属性 不仅期望一个 (CreativeWork) 项作为值,它还期望一个 URL。因此,您可以提供页面的 URL,而不是显式提供 WebPage 项目:

<article itemscope itemtype="http://schema.org/BlogPosting">
  <link itemprop="mainEntityOfPage" href="http://example.com/article-1" />
</article>

(根据 Articles Rich Snippet 的文档,这是 Google 所期望的。)

附注:URL 页与 post

许多网站不区分网页的 URL 和博客的 URL post。对于这些网站来说,像

这样的陈述似乎很愚蠢
http://example.com/article-1 (the blog post)
is the 'mainEntityOfPage' 
http://example.com/article-1 (the web page) 
http://example.com/article-1 (the web page) 
has 'mainEntity' 
http://example.com/article-1 (the blog post)

但无论如何它还是有用的(例如,用于选择哪个项目是主要项目,因为其他项目不会有此声明;或用于空白节点;等等)。

但是,某些网站确实存在差异(尤其是 Linked Data),因此它们可能会声明类似

http://example.com/article-1#this (the blog post)
is the 'mainEntityOfPage' 
http://example.com/article-1 (the web page) 
http://example.com/article-1 (the web page) 
has 'mainEntity' 
http://example.com/article-1#this (the blog post)

这里,http://example.com/article-1#this表示博客posting,http://example.com/article-1表示包含此posting信息的页面(或posting的内容=]ing 本身)。一个更清楚的例子是一个人和一个关于这个人的页面;或建筑物和有关该建筑物的页面。示例见我的回答 why you might want to do this。 (但是,如上所述,您不必区分;您可以对两者使用相同的 URL。)