使用HTML5+;微数据&x27;s<;meta>;在<;车身>;

使用HTML5+;微数据&x27;s<;meta>;在<;车身>;,html,meta,schema.org,microdata,Html,Meta,Schema.org,Microdata,我想使用HTML5+Microdata的标记指定产品是否“库存” 我不确定这是否是正确的语法: 品名 $1 我在这里创建了一个jsfiddle:,然后将输出()放入富代码片段工具中 结果是: 我相信语法是正确的,警告并不重要,因为它没有属性,因为它是元标记。元标记不能与这样的itemscope一起使用。正确的表达方式是使用链接标记通过规范引用: <div itemscope itemtype="http://schema.org/Product"> <h2 itempr

我想使用HTML5+Microdata的
标记指定产品是否“库存”

我不确定这是否是正确的语法:


品名
$1
我在这里创建了一个jsfiddle:,然后将输出()放入富代码片段工具中

结果是:


我相信语法是正确的,警告并不重要,因为它没有属性,因为它是元标记。

元标记不能与这样的itemscope一起使用。正确的表达方式是使用
链接
标记通过规范引用:

<div itemscope itemtype="http://schema.org/Product">
  <h2 itemprop="name">Product Name</h2>
  <dl itemprop="offers" itemscope itemtype="http://schema.org/Offer">
    <dt itemprop="price">$1</dt>
    <link itemprop="availability" href="http://schema.org/InStock">
  </dl>
</div>

品名
$1
来自schema.org的入门指南,以支持@Lawrence的答案

但是,我不喜欢在页面主体中使用link标记。发件人:

链接标记只能出现在head元素中


有没有更好的方法使用有效标记指定可用性?

我做了与OP相同的事情,得到了相同的结果,测试工具上的可用性链接到一个子项。。。我终于能够通过以下方式对其进行正确验证:

<meta itemprop='availability' content='http://schema.org/InStock'>

请参阅标题下的“不可见内容”(不确定这是否有帮助):

一般来说,谷歌不会显示用户看不见的内容。换句话说,不要以某种方式向用户显示内容,而是使用隐藏文本分别为搜索引擎和web应用程序标记信息。您应该标记用户访问您的网页时实际显示的文本

本指南有一些例外情况。在某些情况下,为搜索引擎提供更详细的信息是很有价值的,即使您不希望页面的访问者看到这些信息。例如,如果一家餐厅的评级为8.5,那么用户(而不是搜索引擎)会认为该评级基于1-10分制。在这种情况下,可以使用meta元素来表示,如下所示:


评级:8.5

虽然要在
正文中使用
meta
(如果用于微数据!),但您的示例不正确,原因如下:

  • dl
    元素只能包含
    dt
    dd
    (和
    script
    /
    模板
    )元素。您必须将
    放在
    dt
    /
    dd
    的内部,或者放在
    dl
    的外部(但随后必须移动
    项范围

  • meta
    元素必须具有
    content
    属性

  • 为此使用
    itemid
    是不正确的,并且
    http://schema.org/ItemAvailability
    不是类型,因此使用
    itemscope
    +
    itemtype
    也不正确

  • 但是,如果
    itemprop
    值是URI,则使用
    link
    元素而不是
    meta
    元素

此外,
price
值不应包含货币符号,而且您的
dt
实际上应该是
dd
(其中
dt
包含“价格”或其他内容)

因此,您可以使用:


价格
$1 

你检查过谷歌的外观了吗?@Oded无法检查,因为我的网站没有上传。此外,有时即使语法不正确,工具也会正确提取内容!所以语法正确吗?我想这可能是造成混淆的原因。它表明:
@bluescrubbie我很惊讶谷歌支持这种语法。虽然
itemtype
在技术上是一个全局属性,但我从未见过
meta
元素在野外使用它。很好的标记。我想了解更多关于这种实现的信息,我不知道它是如何工作的。您或其他阅读本文的人是否有来源?它在schema.org上的文档中:它无效,请查看schema.org上关于枚举的文档。此外,meta标记需要有一个有效的HTML内容。
link
meta
如果用于微数据。虽然从技术上讲,您的报价出现在页面上,但您应该在字里行间阅读。请注意顶部的“内容类别:元数据内容。如果存在itemprop:流内容和短语内容”。由于流和语法内容可以出现在正文中,
可以出现在正文中,如果且仅当它具有
itemprop
属性。这不是你的错,但在这种情况下,谷歌是如此毫无帮助lol。“除了例外,大多数情况下不这样做,在这种情况下,请这样做!”嗯…谢谢。允许在正文中使用meta吗?但是这会创建一个隐藏的元素,谷歌不喜欢隐藏的东西。最近,我在网站管理员工具中收到一个警报通知,检测到垃圾邮件结构化数据。该网站的元素就在其下方——事实上,它甚至通过了谷歌结构化数据工具的验证——但网站管理员坚持认为结构化数据中存在隐藏内容。我最后不得不把它去掉。你知道这是怎么回事吗?@Sbpro:如果这真的是唯一隐藏的元素,我猜谷歌的站长工具是不好的。使用
meta
/
link
有很多原因(甚至谷歌自己的例子也包含这些),而
inLanguage
案例就是一个很好的理由:你不希望“en-US”被用户看到。此外,使用JSON-LD(谷歌建议使用),一切都是隐藏的。这个建议的真正含义是:不要对用户隐瞒你向搜索引擎展示的内容自动检测这样的坏情况当然不容易,所以他们的工具失败了。感谢您花时间回复。是的,那是唯一隐藏的元素。我同意有很多理由使用这些元素
Item 1
type:   http://schema.org/offer
property:   
price:  Price: $139.00
pricecurrency:  USD
availability:   http://schema.org/InStock