所以我刚刚遇到了schema.org组织类型的'sameAs',它可以让你链接你的社交个人资料。我的问题是我的网址和徽标在一个地方(标题),而社交链接在其他(页脚)。
<div class="container custom-top" itemscope itemtype="http://schema.org/Organization">
<a class="custom-logo" itemprop="url" href="/">
<img itemprop="logo" alt="sitename" height="40" src="/assets/img/logo-main.png" width="161">
</a>
</div>
我的社交链接在一个完全不同的地方:
<ul class="list-inline">
<li>
<a href="https://www.facebook.com/site" data-window="external" data-placement="top" rel="tooltip" title="Facebook"></a>
<a href="https://twitter.com/site" data-window="external" data-placement="top" rel="tooltip" title="Twitter"></a>
<a href="https://plus.google.com/site" data-window="external" data-placement="top" rel="tooltip publisher" title="Google+"></a>
</li>
</ul>
在一个完美的世界中,所有这些都是物种类型的孩子,但由于我的设计,这是不可能的。
<span itemscope itemtype="http://schema.org/Organization">
<a itemprop="url" href="/">
<img itemprop="logo" src="/assets/img/logo-main.png"
</a>
<a itemprop="sameAs" href="http://www.facebook.com/your-company">FB</a>
<a itemprop="sameAs" href="http://www.twitter.com/YourCompany">Twitter</a>
</span>
那么,无论如何,除了把所有东西都放在同一个地方外,还有什么方法可以解决这个问题吗?我阅读了itemref
并将项目链接在一起,但在使用Googles结构化数据测试工具进行测试时无法使其工作。
请不要告诉我让div保持打开状态,并且基本上跨越组织itemtype的整个页面。我希望有一个干净的方法来解决这个问题。 Schema.org不能指望所有内容都能很好地集中在每个网页上。
答案 0 :(得分:4)
Microdata的itemref
属性可以是一个解决方案。但这仅在您没有其他父itemtype
打开时才有效(例如,在body
上)。
<div itemscope itemtype="http://schema.org/Organization" itemref="social-links">
<a itemprop="url" href="/">
<img itemprop="logo" alt="sitename" src="logo.png">
</a>
</div>
<ul id="social-links">
<li><a itemprop="sameAs" href="https://www.facebook.com/site"></a></li>
<li><a itemprop="sameAs" href="https://twitter.com/site"></a></li>
<li><a itemprop="sameAs" href="https://plus.google.com/site"></a></li>
</ul>
Schema.org不能指望所有内容都能很好地集中在每个网页上。
请注意,Schema.org词汇表不仅适用于Microdata语法。其他语法不一定有这个问题:JSON-LD独立于标记,RDFa可以通过使用URI(例如,通过resource
属性)以及可能还有其属性复制机制来规避这一点。 (Microdata的itemid
原则上也可以解决这个问题,但我想这并没有为此做出明确定义,并且消费者支持不足。)
答案 1 :(得分:4)
如果您不需要在您的网站上使用Schema.org标记,则JSON-LD是另一种选择。
在Google的documentation上了解sameAs
社交个人资料功能,其中包含此JSON-LD代码模板作为示例:
<script type="application/ld+json">
{ "@context" : "http://schema.org",
"@type" : "Organization",
"name" : "Your Organization Name",
"url" : "http://www.your-site.com",
"sameAs" : [ "http://www.facebook.com/your-profile",
"http://www.twitter.com/yourProfile",
"http://plus.google.com/your_profile"]
}
</script>
我们现在使用这种方法在我们的网站上包含我们的组织信息,因为我们遇到了与您相同的问题。根据Google的Structured Data Testing Tool。
,此JSON-LD结构化数据有效答案 2 :(得分:-1)
<div itemscope itemtype="http://schema.org/Organization">
<link itemprop="url" href="/">
<img itemprop="logo" alt="sitename" src="logo.png">
<ul>
<li><a itemprop="sameAs" href="https://www.facebook.com/site"></a></li>
<li><a itemprop="sameAs" href="https://twitter.com/site"></a></li>
<li><a itemprop="sameAs" href="https://plus.google.com/site"></a></li>
</ul>
</div>
试试这个我没有看到任何错误。