如何实现“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
的使用会更容易。
对于包含BlogPosting
的WebPage
,我们可以有:
<body itemscope itemtype="http://schema.org/WebPage"> <article itemprop="mainEntity" itemscope itemtype="http://schema.org/BlogPosting"> </article> </body>
这意味着:有一个WebPage
和一个BlogPosting
, BlogPosting
是这个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。)