Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Schema.org<;头>;HTML标记:我可以只使用元标记吗?_Html_Schema.org_Microdata - Fatal编程技术网

Schema.org<;头>;HTML标记:我可以只使用元标记吗?

Schema.org<;头>;HTML标记:我可以只使用元标记吗?,html,schema.org,microdata,Html,Schema.org,Microdata,所以我在看Schema.org。是否需要将我的标记更改为此 或者我可以只使用块中的元标记吗 关于on的部分没有明确提到HTML文档的head-元素中的meta-元素。总之,您需要itemscope才能拥有有效的标记 如果您查看网站上的描述,您会发现关于网页的这一部分: 每个网页都隐式地假定声明为WebPage类型,因此可以使用关于该网页的各种属性,例如breadcrumb。如果指定了这些属性,我们建议显式声明,但如果在itemscope之外找到它们,则假定它们与页面有关 有趣的是: […]

所以我在看Schema.org。是否需要将我的
标记更改为此


或者我可以只使用
块中的元标记吗


关于on的部分没有明确提到HTML文档的
head
-元素中的
meta
-元素。总之,您需要
itemscope
才能拥有有效的标记

如果您查看网站上的描述,您会发现关于网页的这一部分:

每个网页都隐式地假定声明为WebPage类型,因此可以使用关于该网页的各种属性,例如breadcrumb。如果指定了这些属性,我们建议显式声明,但如果在itemscope之外找到它们,则假定它们与页面有关

有趣的是:

[…]如果它们[属性]是在
itemscope
之外找到的,将假定它们与页面有关。

根据这一点,您不需要将
itemscope
添加到
html
-元素。但它读起来更像是一个建议,而不是一个明确的规范


你也可以在谷歌的网站上看到这种行为。运行此代码时:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta itemprop="name" content="The Name or Title Here">
        <meta itemprop="description" content="This is the page description">
        <meta itemprop="image" content="http://www.example.com/image.jpg">
    </head>
</html>

…您会发现它不会捕获任何数据。当您添加
itemscope
导致未指定类型且无任何错误时,它将立即开始捕获数据:

使用
itemtype=”http://schema.org/Article“
将失败或至少抛出错误,因为为类型
文章
提供的属性太少



所有不同的类型都可以在scheme.org上找到。也许其中一个适合整个页面。

根据中给出的示例,是的,这两个都是谷歌的必修课

要验证数据是否被正确捕获,可以使用此工具:


通过使用上面的工具,您可以看到如果省略
itemtype=”http://schema.org/Article“
数据将不会被捕获。

属性需要属于某个项目。您可以使用
itemscope
属性创建一个项目(而
itemtype
属性可以为该项目指定一个类型)

如果没有
itemscope
,则标记示例无效

可以仅在
头部
元素内提供微数据,但不推荐使用,原因有二:

  • 微数据旨在用于现有标记。虽然在
    标题
    ()中包含某些
    /
    链接
    元素通常是有意义的,但大多数内容通常在
    正文
    中。如果您只想使用
    标题中的元素
    ,则必须复制大部分内容。但如果你想走那条路,你就得走

  • 由于
    head
    不允许使用分组元素(如
    div
    ),因此表示微数据变得复杂。您必须对每个属性使用
    itemref
    ,并对每个项目滥用
    style
    之类的元素(参见示例)

您的示例可以如下所示:


如果您可以在
head
元素上使用
itemscope
,则更好:


但是,一旦您需要不止一个项目(通常情况下,对于
组织
/
个人
,即
作者
等),这就不再有效,您需要一个类似于我的第一个代码片段的解决方案

注意,允许对
主体
元素中的微数据使用
/
链接
元素。这使它更容易,因为您可以为
itemscope
使用
div
元素。因此,即使复制内容而不是标记现有内容,也最好在
正文中执行此操作:


(我将
image
属性的
meta
元素替换为
link
元素,因为。)

您可以安全地使用
。这允许您在
元素中定义itemprop


Google富测试代码段和w3验证程序,两者都验证了这种方法,因为我已经对它进行了测试。

越简单、越有效越好:)我认为网站修改标签并不容易,因为在文章、博客、网站视频等之间切换是为什么很多网站不使用它的原因,我想还是坚持使用opengraph。@c0nk即使是你真正需要的opengraph
,但我认为大多数解析器并不需要它。请参阅。您说过如果只有itemscope存在未定义的类型,则为
您能否给出一个未定义类型的示例,该类型可用于所有类型,如文章、视频、图像、博客等。@C0nw0nk我已用更多信息更新了答案,关于你的问题。谢谢你提供的信息:)是否有一个通用模式属性,我可以应用于网站、文章、视频和图像。如果我能应用一个适用于所有人的函数,那么上面的itemtype仅适用于文章。最常见的是,如果可能的话,尽量缩小范围。:)还要注意的是,模式微数据正在变得过时,因为它的实现非常混乱,因为它会干扰html。谷歌建议我们改用JSON-LD。这对我来说要干净得多implement@insertusernamehere:Schema.org和Microdata是不同的事物和项目,因此无论Schema.org写什么,它都不会影响什么是/不是有效的Microdata。(顺便说一句,它在RDFa中是有效的。)——Schema.org关于
网页
的声明对数据消费者来说是有意义的(他们必须处理无效数据),但在我看来,作者不应该含蓄地使用
网页
;我