https://developers.google.com/structured-data/rich-snippets/articles
列表中的第一个属性是:
mainEntityOfPage。@ id(推荐)
我不知道该属性的值必须是什么?这是什么财产?它是链接到:
http://schema.org/Article
..还是当前博客帖子的链接,例如:
http://www.example.com/blog/1001/my-blog-article
他们在其示例代码中具有以下内容:
<meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://google.com/article" />
我目前所拥有的这还不符合测试工具的规则-我仍在忙于添加所有必需的属性,同时尝试在其中添加推荐的属性好:
<div itemscope itemtype="http://schema.org/BlogPosting">
<h1 itemprop="headline">
<a href="http:///www.example.com/blog/1001/my-blog-article" itemprop="url">My Blog Article</a>
</h1>
<p>Written by
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
<span itemprop="name">Mase Kind</span>
</span> on
<time itemprop="datePublished" datetime="2015-11-16T15:30:00+02:00">November 16, 2015</time>
<meta itemprop="dateModified" content="2015-12-10T12:29:00+02:00" />
<div itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<div itemprop="logo" itemscope itemtype="http://schema.org/ImageObject"></div>
<meta itemprop="name" content="My Company Name" />
</div>
</p>
<div itemprop="articleBody">
<p>first article body</p>
</div>
</div>
我的文档中也有此文件:
<body itemscope itemtype="http://schema.org/WebPage">
...
</body>
这是否会发生冲突与Google提供的代码示例一起使用?
#1 楼
mainEntityOfPage
属性用于提供以事物为主要实体的页面的URL。如果查看逆属性mainEntity
,可能会变得更加清楚:这给出了页面的主要实体(请参见示例)。 例如,对于包含单个博客文章的网页,您可以提供以下其中一项:
BlogPosting
→mainEntityOfPage
→WebPage
WebPage
→mainEntity
→BlogPosting
这些属性可用于传达页面的主要内容(因为页面可能包含多个项目) ,例如带有相关
ItemList
项的WebPage
,描述作者的Person
,提供一些元数据的WebSite
等。)(有关详细说明,请参见我对Stack Overflow的回答。) />
有两种使用
mainEntityOfPage
的方法:提供页面的URL
嵌入/引用页面项(通常是
WebPage
)第二个通常没有多大意义(您宁愿使用inverse属性
mainEntity
),并且可能因此Google推荐/期望第一个。要提供网址,您只需使用
link
元素: <article itemscope itemtype="http://schema.org/BlogPosting">
<link itemprop="mainEntityOfPage" href="http://example.com/article-1" />
</article>
Google的结构化数据测试工具接受此。 br />
在“文章丰富摘录”示例中,Google使用的是带有
meta
的itemid
元素: 这是无效的HTML5 + Microdata:如果
<meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://google.com/article"/>
元素具有meta
属性,则它也必须具有itemprop
属性。 评论
如果我们还通过meta提供带有url的内容怎么办? 它会在结构化数据测试工具中验证正常并且不会显示错误
–光剑
17年4月1日在17:44
@StarWars:是的,这就是使此meta元素有效的方法。请注意,内容值将被忽略,因此您可以提供一个空值。
–未成年
17年4月1日在18:00
好的,我现在将content =“”添加到元标记。
–光剑
17年4月1日在18:54
为什么Google在示例中使用meta而不是link?这些都在结构化数据测试工具中得到验证。虽然,预览是不同的。使用链接时,它具有mainEntityOfPage http://example.com/article-1,而对于meta,它显示@id和@type属性。
–光剑
17年4月1日在19:07
@StarWars:是的,这是完全不同的:元方式创建一个具有类型和URI作为标识符的新项目,链接方式仅链接到页面。我不知道为什么Google的文档使用元数据,特别是因为我认为链接方式更简单。
–未成年
17年4月1日在19:20
#2 楼
此属性是什么?
它是对
url
和sameAs
属性的补充,如mainEntity
背景所述。它具有特有的名称因为它可能适用于
Thing
类型的所有项目。如果它仅适用于Articles
,它本来可以称为mainTopic
/ mainTopicOfArticle
,并且更加清楚。 br /> 属性的值应为
CreativeWork
类型的项或引用Schema.org的URL
类型的项。这意味着它也可能是您提到的Article
或BlogPosting
。但是,如果要构建AMP页,则该值应为URL。这是否与Google提供的代码示例有任何冲突?
尽管Google的结构化数据测试工具说了什么,但他们的文档不再建议对非AMP页面使用
mainEntityOfPage
,因此您可以随意忽略它。
评论
刚刚看到今天早上我的网站发生了同样的事情,并落在了这个线程上。