将元描述和Open Graph协议描述合并为一个标签

48

有没有可能将元描述和Open Graph协议描述结合起来...

<meta name="description" content="My meta description copy." />
<meta property="og:description" content="My meta description copy." />

当两个内容相同的元素合并时应该怎么做?

<meta name="description" property="og:description" content="My meta description copy." />

1
好问题,先生!您可能需要将采纳的答案更改为第二个,因为它更好。 - Limon Monte
我可以问一下...你为什么认为这样做很重要? - Nathan
@Nathan 为了减少重复和页面负担 - Pere
2个回答

60

是的,你可以将它们结合起来。为了测试它,我创建了下面这个简单的HTML页面,将其上传到服务器,然后通过Facebook的URL Linter运行该页面。它报告了与描述标签无关的警告(仅关于缺少og:image标签),并正确地读取了描述。

<!doctype html>
<html>
    <head>
        <meta name="description" property="og:description" content="My meta description copy." />
        <meta property="og:title" content="Test page" />
        <meta property="og:type" content="article" />
        <meta property="og:url" content="http://example.com/ogtest.html" />
    </head>
    <body>
    Test
    </body>
</html>

请注意,如果og:url的值与当前页面的URL不同,Facebook会在该URL上查找描述,而忽略当前页面的描述标签。

还有一点需要注意的是,即使可以合并两个描述标签,Facebook在其自己的网站上也不会这样做。


6
合并这两个的任何缺点有人能想到吗? - Elijah Lynn
1
哇,这主意太好了!我一直讨厌在HTML文档顶部重复文本/代码的想法。当然,这假设您希望相同的描述出现在搜索结果页面或社交媒体网站上...这可能是绝大多数情况。 - doublejosh

11

关于为什么这是可能/允许的一些额外信息:

HTML+RDFa 1.1扩展了HTML5的meta元素。

HTML+RDFa 1.1(W3C推荐)定义了:

如果在meta元素上存在RDFa @property属性,则不需要@name、@http-equiv或@charset属性,并且必须指定@content属性。

因此,在使用RDFa的@property时,名称并非必需,但也不是禁止的,这使得

<meta name="description" property="og:description" content="great description">

根据规范完全没问题。

我从这个相关问题的答案中找到了这个信息:是否可以在opengraph和schema.org中使用相同的meta标签


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接