对于在schema.org的站点上应用JSON-LD的最佳实践,我很好奇。
如果我有一个页面的文章,我也想在我的页面上定义网站,我会有这样的:
<script type="application/ld+json"> { "@context": "http://schema.org","@type": "WebSite","url": "http://www.example.com/","potentialAction": { "@type": "SearchAction","target": "http://www.example.com/search?&q={query}","query-input": "required" } } </script> <!- … --> <script type="application/ld+json"> { "@context": "http://schema.org","@type": "Article","author": "John Doe","interactionCount": [ "UserTweets:1203","UserComments:78" ],"name": "How to Tie a Reef Knot" } </script>
这是正确还是错误?有没有任何好处或需要将它们合并到相同的脚本或数组的项目?
解决方法
这是有效的您可以根据需要拥有尽可能多的数据块(=脚本元素)。
只能使用一个脚本元素的一个可能的益处:它允许使多个项目之间的关系更容易(例如,如果您决定使用hasPart
或mainEntity
),因为您只需要嵌套这些项目。
但是,当使用单独的数据块时,使用@id(thanks,@ Gregg Kellogg)引用该项目的URI也可以使这些关系成为可能。
(为了参考,@graph可以使用adding two or more top-level items in a single script
)