Schema.org组织:网址,标识在一个地方,社交链接在另一个地方

时间:2015-03-05 21:34:25

标签: schema.org microdata

所以我刚刚遇到了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不能指望所有内容都能很好地集中在每个网页上。

3 个答案:

答案 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>

试试这个我没有看到任何错误。