如何实现“mainEntityOfPage”到这个特定的网站?

请看这里: 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"/> 

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

 <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用法。 如果有人可以build议我怎么办这个特定的案例/网站,我将不胜感激。 不是一般的,因为每个网站可以有一个不同的mainEntityOfPage ,但我需要知道和理解这个网站的正确实施。

关于Google的Microdata示例

Google的Microdata示例无效。 如果meta元素具有itemprop属性,则content属性是必需的( 详细信息 )。

我描述了如何在Microdata中指定mainEntityOfPage不同方法 ,最直接的是创buildURL值的link元素(而不是另一个Microdata项目):

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

mainEntity

如果我们首先查看它的反向属性mainEntityOfPage那么理解mainEntityOfPage的使用会更容易。

对于包含BlogPostingWebPage ,我们可以有:

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

这意味着:有一个WebPage和一个BlogPostingBlogPosting是这个WebPage描述的“主要实体”。 为了表示这是特别有意义的,如果涉及更多的项目,例如描述作者的Person ,相关post的另外五个BlogPosting项目,提供一些元数据的WebSite项目等等。由于mainEntity / mainEntityOfPage ,消费者可以学习什么是主要/该页面上的主要项目是(即,页面代表什么)。

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。 因此,您可以不提供显式的WebPage项目,而是提供页面的URL:

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

(这是谷歌期望的,根据文章丰富的片段 。)

附件:页面与邮件的URL

许多网站不区分网页的url和博客post的url。 对于这些网站来说,看起来似乎很愚蠢

 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) 

但无论如何它可能是有用的(例如,select哪个项目是主要项目,因为其他项目不会有这个声明;或者对于空白节点等)。

但是,有些网站确实有区别(尤其是对于关联数据 ),所以他们可能会这样说

 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代表博客发布, http://example.com/article-1代表包含有关该发布信息的页面(或发布本身的内容)。 一个更清晰的例子是一个人和一个关于这个人的页面; 或关于这座build筑物的build筑物和页面。 看看我的答案为什么你可能想要做这个例子。 (但是,如上所述,您不必区分;您可以使用相同的URL。)