混合JSON-LD和Microdata Schema.org [英] Mixing JSON-LD and Microdata Schema.org

查看:119
本文介绍了混合JSON-LD和Microdata Schema.org的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我有以下标记:

<body itemscope="" itemtype="http://schema.org/WebPage">
  <h1 itemprop="name">Lecture 12: Graphs, networks, incidence matrices</h1>
  <p itemprop="description">These video lectures of Professor Gilbert
    Strang teaching 18.06 were  recorded in Fall 1999 and do not
    correspond precisely to the current  edition of the textbook.</p>
  <div itemprop="publisher" itemscope="" itemtype="http://schema.org/CollegeOrUniversity">
    <h4 class="footer">About <span itemprop="name">MIT OpenCourseWare</span></h4>
  </div>
  <a itemprop="license"
    rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/us/deed.en_US"><img
    src="/images/cc_by-nc-sa.png" alt="Creative Commons logo with terms BY-NC-SA." /></a>
</body>

我想重构发布者属性,因为它很复杂,我不想显示它并执行以下操作:

And I want to refactor the publisher property because it's complicated and I don't want to necessarily display it and do this:

<body itemscope="" itemtype="http://schema.org/WebPage">
  <h1 itemprop="name">Lecture 12: Graphs, networks, incidence matrices</h1>
  <p itemprop="description">These video lectures of Professor Gilbert
    Strang teaching 18.06 were  recorded in Fall 1999 and do not
    correspond precisely to the current  edition of the textbook.</p>
  <script type="application/ld+json">
    {
        "@context": "http://schema.org",
        "@type": "CollegeOrUniversity",
        "name": "MIT OpenCourseWare"
    }
</script>
  <a itemprop="license"
    rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/us/deed.en_US"><img
    src="/images/cc_by-nc-sa.png" alt="Creative Commons logo with terms BY-NC-SA." /></a>
</body>

我怎么说<script>块与itemprop="publisher"属性有关?

How do I say that the <script> block relates to the itemprop="publisher" property?

我猜这两个选项是i).将itemprop属性添加到脚本标签或ii).将@attribute代替itemprop添加到JSON-LD块.

I guess the two options are i). adding an itemprop attribute to the script tag or ii). adding an @attribute to in lieu of itemprop to the JSON-LD block.

我都找不到任何文档.有人知道答案吗?

I cannot find documentation on either. Does anyone know the answer?

推荐答案

不可能这样.如果在script元素上使用itemprop属性,则属性值将是 textContent .本质上类似于itemprop="{ "@context": "http://schema.org", "@type": "CollegeOrUniversity", "name": "MIT OpenCourseWare" }",因此该值为纯文本,而不是JSON-LD(并且不解释为JSON-LD).

This is not possible like that. If you use the itemprop attribute on the script element, the property value will be the textContent of script. This would be essentially something like itemprop="{ "@context": "http://schema.org", "@type": "CollegeOrUniversity", "name": "MIT OpenCourseWare" }", so the value is the plain text, not JSON-LD (and not interpreted as JSON-LD).

如果您不想在页面上显示发布者名称,则可以使用meta元素:

If you don’t want to have the publisher name visible on your page, you could use a meta element:

<div itemprop="publisher" itemscope itemtype="http://schema.org/CollegeOrUniversity">
  <meta itemprop="name" content="MIT OpenCourseWare" />
</div>

对于JSON-LD节点和引用,也可以使用节点标识符(@id) Microdata中的此URI,但某些使用者可能不支持它(某些使用者可能根本不遵循引用,有些使用者可能只识别Schema.org对

It would also be possible to use a node identifier (@id) for the JSON-LD node and reference this URI in Microdata, but some consumers might not support it (some might not follow references at all, some might only recognize what Schema.org expects for the publisher property: Organization/Person, but not URL):

<script type="application/ld+json">
{
    "@context": "http://schema.org",
    "@type": "CollegeOrUniversity",
    "@id": "http://example.com/mit-opencourseware#thing",
    "name": "MIT OpenCourseWare"
}
</script>

<link itemprop="publisher" href="http://example.com/mit-opencourseware#thing" />

这篇关于混合JSON-LD和Microdata Schema.org的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆