Image sociall meta tags - property =“og:image”name =“twitter:image”itemprop =“image”

时间:2017-06-13 15:13:50

标签: html facebook-opengraph schema.org microdata twitter-card

社交网络可以很好地从共享URL的网站中提取标题和描述,但对于图像,创建自定义元标记仍然是必要的:if ($this->request->is('post')) { }else{ $this->Session->setFlash(__('UserHub already exists contact admin')); } property="og:image" name="twitter:image"。所以我的问题是这个工作:

itemprop="image"

所以我不必为我网站上的每个网页创建3个不同的元标记。

1 个答案:

答案 0 :(得分:1)

property属性来自RDFa,itemprop属性来自Microdata,name属性来自纯HTML。

可以同时使用itempropproperty,但name元素的meta itemprop属性具有<meta property="og:image" name="twitter:image" content="http://example.com/image.jpg" /> <meta itemprop="image" content="http://example.com/image.jpg" /> <!-- note that this snippet is still invalid, see below --> 属性(虽然RDFa允许它,所以你可以使用两个元素:

<meta name="twitter:image" content="http://example.com/image.jpg" />
<meta itemprop="image" property="og:image" content="http://example.com/image.jpg" />
<!-- note that this snippet is still invalid, see below -->
<meta property="og:image image" name="twitter:image" content="http://example.com/image.jpg" />
<!-- note that this snippet is still invalid, see below -->

由于Schema.org也可以与RDFa一起使用,您可以省略微数据(除非您需要支持不支持RDFa的消费者):

link

为什么这些无效?因为doesn’t allow使用meta元素而不是twitter:url元素,所以如果值是URI。但是,在实践中这是有问题的,因为:

  • meta定义为have to,而不是meta extension(但由于该值为网址,因此link type为链接类型)
  • Facebook似乎只识别link,而不是<meta name="twitter:image" property="og:image" content="http://example.com/image.jpg" /> <!-- invalid, but expected --> <link property="image" href="http://example.com/image.jpg" /> <!-- valid --> (我没有测试它,这是我在这里回答有关它时多次阅读的内容 - 例如:{{3} })

因此,虽然Twitter Cards和Facebook的OGP建议使用(并且可能仅支持)无效标记,但Schema.org消费者并不一定如此。因此,您可能希望将无效和有效方式结合起来:

image

(请注意,使用Schema.org的vocab属性的所有这些片段都需要一个带有image的父元素。如果您不提供它,则不清楚{{1}的词汇表}属性。如果你不能,你应该使用schema:image。)