我已经阅读了几个答案,关于mainEntityOfPage
是什么以及如何使用它,每一个都比上一个更令人困惑。
所以我的问题是具体的;我有一个包含博客部分的网站。在博客详细信息页面上,我想使用JSON-LD格式的结构化数据。
我的问题:我的mainEntityOfPage
会是WebPage
还是BlogPosting
?
我应该用这个:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebPage",
"mainEntityOfPage": {
"@type": "BlogPosting",
}
}
</script>
或这个:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "BlogPosting",
"mainEntityOfPage": {
"@type": "WebPage",
}
}
</script>
我认为mainEntityOfPage
是BlogPosting
,所以第一个例子,是吗?或者我还是错了吗?
mainEntityOfPage
的定义是:
表示此事物是所描述的主要实体的页面(或其他CreativeWork)。
博客帖子页面上的主要实体是博客文章,而不是页面。所以,第二个片段是正确的:
{
"@context": "http://schema.org",
"@type": "BlogPosting",
"mainEntityOfPage": {
"@type": "WebPage"
}
}
如果你想使用第一个片段(以便WebPage
是顶级项目),你必须使用mainEntity
而不是mainEntityOfPage
:
{
"@context": "http://schema.org",
"@type": "WebPage",
"mainEntity": {
"@type": "BlogPosting"
}
}
注1:mainEntity
和mainEntityOfPage
是反向属性,因此这两个代码段的含义相同。
注2:也许它有助于将其读作“是mainEntityOfPage
”,并且“有mainEntity
”。
注3:您可以在博客帖子页面上使用ItemPage
(而不是WebPage
)。