【问题标题】:Can I combine two itemscopes to describe a single item?我可以结合两个 itemscope 来描述一个项目吗?
【发布时间】:2011-12-02 20:07:15
【问题描述】:

我想向页面添加微数据,但项目的数据被分解为页面的几个不连续部分。如果我有两个具有itemscope 属性的span 元素,是否可以让搜索引擎合并这两个项目范围并将它们解释为一个项目?

例如*:

<span itemscope itemtype="http://schema.org/Person">
    Hello, my name is <span itemprop="name">Glinda</span>.
</span>
I like to fly around in a giant bubble.
<span itemscope itemtype="http://schema.org/Person">
    I live in the <span itemprop="location">Land of Oz</span>.
</span>

有没有办法添加类似itemid 的属性来告诉网络蜘蛛两个Person itemscopes 应该作为一个项目而不是两个使用?

可能是这样的。

<span itemscope itemtype="http://schema.org/Person" itemid="7f6ba1">
    Hello, my name is <span itemprop="name">Glinda</span>.
</span>
I like to fly around in a giant bubble.
<span itemscope itemtype="http://schema.org/Person" itemid="7f6ba1">
    I live in the <span itemprop="location">Land of Oz</span>.
</span>

* 我知道在这个例子中我可以只使用一个大跨度,但我不能在我必须使用的实际页面上这样做。

编辑:也许我需要一个更好的例子。这有点做作,但说明了我遇到的问题。请记住,重新组织页面不是一种选择。

<h1>Locations</h1>
  <ul>
    <li itemscope itemtype="http://schema.org/Person">
      <span itemprop="name">Bob</span> lives in <span itemprop="location">Berkeley</span>
    </li>
    <li itemscope itemtype="http://schema.org/Person">
      <span itemprop="name">Carol</span> lives in <span itemprop="location">Cupertino</span>
    </li>
  </ul>

<h1>Jobs</h1>
  <ul>
    <li itemscope itemtype="http://schema.org/Person">
      <span itemprop="name">Bob</span> works at <span itemprop="affiliation">Borders</span>
    </li>
    <li itemscope itemtype="http://schema.org/Person">
      <span itemprop="name">Carol</span> works at <span itemprop="affiliation">Capitol One</span>
    </li>
  <ul>

有没有办法让这个微数据产生两个 Person 项目,而不是四个?

我想要住在伯克利并在 Borders 工作的 Bob,以及住在 Cupertino 并在 Capitol One 工作的 Carol。

【问题讨论】:

    标签: html seo microdata


    【解决方案1】:

    如果我正确阅读了W3 itemref,您可以为此目的使用itemref 属性:

    <h1>Locations</h1>
      <ul>
        <li  itemscope itemtype="http://schema.org/Person" itemref="bob">
          <span itemprop="name">Bob</span> lives in 
          <span itemprop="homeLocation">Berkeley</span>
        </li>
        <li  itemscope itemtype="http://schema.org/Person" itemref="carol">
          <span itemprop="name">Carol</span> lives in 
          <span itemprop="homeLocation">Cupertino</span>
        </li>
      </ul>
    <h1>Jobs</h1>
      <ul>
        <li itemprop="affiliation" itemscope itemtype="http://schema.org/Organization" id="bob">
          Bob works at <span itemprop="name">Borders</span>
        </li>
        <li itemprop="affiliation" itemscope itemtype="http://schema.org/Organization" id="carol">
          Carol works at <span itemprop="name">Capitol One</span>
        </li>
      <ul>
    

    【讨论】:

    • 我正在查看规范,但错过了这一点。这是正确的答案,但您的格式略有错误。 Jobs 列表中的
    • 元素每个都需要一个 itemscope 和 itemtype 属性。解决这个问题,我会选择这个作为正确答案。
  • 已编辑,谢谢。从文档中的示例中我不确定它是否需要itemscope
  • @haydenmuhl:不,Nate B 的初始版本是正确的。不要在 itemref'd 元素上使用 itemscope,否则(目前的情况)您仍然有 4 个而不是 2 个项目。
  • @NateB 使用id 属性不是只允许您使用该方法一次吗?考虑在您的示例中有 3 个列表,您将如何将属性添加到第三个列表中的 id="bob"
  • 【解决方案2】:

    是的,如果您使用 itemref 属性是可能的。 看看这个网站:IJzerfront 14-18

    它们将信息链接起来(描述和图像分开并添加到博物馆广场)。

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签