获取正确的架构以修复 "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
之外你还应该添加一个itemtype
。 itemtype
属性给出了应用属性 (= itemprop
) 的项目 (= itemscope
) 的类型(来自词汇表)。
您说您尝试添加 http://schema.org/Products
类型,但该类型不存在。如果您指的是 http://schema.org/Product
,则可以将以下内容添加到 html
或 head
元素中:
<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
属性.)
我正在尝试让这些元标记与社交媒体一起使用,但我不断收到来自 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
之外你还应该添加一个itemtype
。 itemtype
属性给出了应用属性 (= itemprop
) 的项目 (= itemscope
) 的类型(来自词汇表)。
您说您尝试添加 http://schema.org/Products
类型,但该类型不存在。如果您指的是 http://schema.org/Product
,则可以将以下内容添加到 html
或 head
元素中:
<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
属性.)