我可以在项目包装层而不是项目标签上指定 Schema.org 属性 吗?

Can I specify a Schema.org property at the item wrapper level instead of the item tag?

我正在努力将 Schema.org 项添加到 Drupal 站点。正如某些人可能已经知道的那样,修改个别字段的呈现 HTML 可能会很痛苦。

在这种情况下,我正在处理产品详细信息页面。特别是将 itemprop="name" 属性 添加到产品标题字段。这只是我正在处理的一个简单的节点内容类型。所以我修改了这个项目内容类型的节点模板。这导致以下 HTML 结构:

<div itemprop="name" class="product-view__item__title">
  <h3 class="field-label"></h3>
  <h1 class="field-title-field item__title-field">
    Very Important Product
  </h1>
</div>

div 元素中的所有内容都来自对模板中标题字段的调用 render()。到目前为止,我没有足够的运气来修改嵌套的 h1 标签。但是我并没有尝试太多,因为我将不得不对其他字段执行此操作,并且想知道我是否可以指定 属性 位于 HTML 树之上的项目。

有什么想法吗?我需要在 h1 级别添加 属性 还是可以在本例中的 div 级别添加它?

我们这样做是为了向搜索引擎提供更好的信息。

是的,你可以这样做。

name 属性 的值将是元素的 textContent(即元素及其所有后代的文本内容,连接起来)。

这当然意味着您必须确保没有其他内容在 div 内呈现(就像带有 class field-label 的元素中的标签)。


¹ 根据定义 by WHATWG’s Microdata (Living Standard) and by W3C’s Microdata (W3C Working Group Note).