获取正确的架构以修复 "The itemprop attribute was specified, but the element is not a property of any item."

Getting correct schema to fix "The itemprop attribute was specified, but the element is not a property of any item."

我正在尝试让这些元标记与社交媒体一起使用,但我不断收到来自 W3C 验证程序的错误:

The itemprop attribute was specified, but the element is not a property of any item.

我尝试输入 itemscope itemtype="http://schema.org/Products,但那只会导致更多错误。这是我的 HTML 来源:

<!DOCTYPE html>
  <head>
    <meta charset="utf-8">  
    <meta name="language" content="english"> 
    <meta name="keywords" content="'.$keywords.'">

    <meta property="og:type" content="website" />
    <meta property="og:image" content="'.$meta_image.'"/>
    <meta property="og:url" content="'.$meta_url.'" />
    <meta property="og:site_name" content="'.$meta_name.'"/> 
    <meta property="og:description" name="description" content="'.$description.'" />    
    <meta property="og:title" content="'.$title.'"/>

    <meta itemprop="name" content="'.$title.'">
    <meta itemprop="description" content="'.$description.'">
    <meta itemprop="image" content="'.$meta_image.'">
    <!-- … -->

我的标签有什么问题?

添加具有 itemscope 属性的 html 元素,如下所示:

<!DOCTYPE html>
<html itemscope>
  <head>
    <meta charset="utf-8">  
    …
    <meta itemprop="name" content="'.$title.'">
    …

顺便说一下,您也可以省略 head 开始标记,并且您应该始终在每个 HTML 文档中指定一个 title;所以:

<!DOCTYPE html>
<html itemscope>
  <meta charset="utf-8">
  <title>Products</title>
  …
  <meta itemprop="name" content="'.$title.'">
  …

您需要 itemscope 属性的原因是因为 itemscope 属性实际上是 创建 项目.

换句话说,如果没有 itemscope,您实际上并没有一个项目——相反,您只有一堆与任何东西。

并且通过在 html 元素上指定 itemscope 属性,文档所说的基本上是这样的,这里指定的属性范围是整个document.,或此处指定的属性适用于整个文档。

,每个 itemprop 都需要一个它所属的项目(由 itemscope 创建)。

但是如果你打算使用一个词汇表(比如Schema.org),除了itemscope之外你还应该添加一个itemtypeitemtype 属性给出了应用属性 (= itemprop) 的项目 (= itemscope) 的类型(来自词汇表)。

您说您尝试添加 http://schema.org/Products 类型,但该类型不存在。如果您指的是 http://schema.org/Product,则可以将以下内容添加到 htmlhead 元素中:

<head itemscope itemtype="http://schema.org/Product">
  <meta itemprop="name" content="'.$title.'">
  <meta itemprop="description" content="'.$description.'">
  <link itemprop="image" href="'.$meta_image.'">
</head>

(请注意,如果值是 URI,您 must use link 元素而不是 meta 元素;我相应地为 image 属性.)