我的网页
我正在为一个会议建立一个网页。该页面包含多个对象,如speaker
(人物)或session
(事件)。
我的问题
我想在页面中添加语义数据,这样搜索引擎和社交网络就可以很容易地理解其内容。我想把这一页描述为一个整体,以及它的一部分--就像一个单独的会话。
我的问题
如何以标准方式标记整个页面和内部对象?我可以在同一个页面中使用多个JSON-LD,还是应该对整个页面使用JSON,对内部对象使用其他标记?
在评论之后作出澄清
感谢您指出了JSON-LD Schema.org:多个视频/图像页面的答案。但是,我不知道应该将不同的JSON对象放在哪里,以便每个对象都引用文档的一个特定部分。应该使用div ids链接它们吗?应该将<script>
放在相关的div中吗?
发布于 2018-04-07 22:39:30
如果您愿意,可以按照Google的指南在页面中包含多个结构化数据元素:
判断它是否能够解析您期望的JSON对象和属性的最好方法是使用它们的Structured Data Testing Tool
发布于 2018-04-09 00:27:58
我不知道应该将不同的JSON对象放在哪里,以便每个对象都引用文档的一个特定部分。
使用JSON,结构化数据不会“耦合”到HTML。(这在语法Microdata和RDFa中是可能的,但是即使在那里,在提取结构化数据之后,也不再需要在哪些HTML元素上指定它。)
如果您有一个关于两个人的页面,您只需提供一个WebPage
和两个Person
对象。为了能够从其他地方对这些对象进行声明,这是给他们乌里斯的一个很好的实践,可以指定@id
。对于WebPage
,URI通常是页面的规范URL。
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebPage",
"@id": "",
"about": [
{
"@type": "Person",
"@id": "#person-1"
},
{
"@type": "Person",
"@id": "#person-2"
}
]
}
</script>
理论上,可以有一个属性允许您引用描述实体的HTML元素。Schema.org当前具有类似于挂起的属性,用于(待决):(待决) (使用CSS选择器引用元素)、(待决) (使用XPath引用元素)。但它们不能用于其他情况(如目前所定义的)。所以你必须为此定义你自己的财产。
应该使用div ids链接它们吗?
可以在对象的id
属性中提供url
值。不过,它并没有将HTML“链接”到结构化数据。它只是传达:您可以通过以下URL找到该节点对象所描述的实体的信息。
通常每个实体都有自己的页面,当然,在同一个页面上描述多个实体是非常好的。
从上面扩展该示例:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebPage",
"@id": "",
"about": [
{
"@type": "Person",
"@id": "#person-1",
"url": "#about-person-1"
},
{
"@type": "Person",
"@id": "#person-2",
"url": "#about-person-2"
}
]
}
</script>
应该将
<script>
放在相关的div中吗?
对于结构化数据,它在没什么区别文档中放置script
元素。
您可以将所有对象放置在一个script
元素中(如上面的示例所示),也可以使用多个script
元素,但是应该引用它们的@id
值,以便仍然可以使用像about
这样的属性(例如,在上面链接的答案中)。在语义上没有区别。
https://stackoverflow.com/questions/49712559
复制相似问题