微数据而不是所有内容都在同一个地方

时间:2018-01-21 13:02:00

标签: html schema.org microdata

我想实施Schema.org LocalBusiness

该网站已存在且无法更改布局。

LocalBusiness的所有信息需求不在页面的一个位置。

有人建议为模式HTML隐藏一些元素,但据我所知,这不是一个好主意。

另一个建议是将所有架构代码放在一个位置并隐藏它,然后再次在页面上显示所需的内容。 隐藏所有架构时的代码示例:

<div itemscope="" itemtype="http://schema.org/LocalBusiness">
  <span itemprop="name" style="display:none">Seattle, WA</span> 
   <img itemprop="image" src="/img/myimage.jpg" alt="Seattle, WA" style="display:none">
  <span itemprop="description" style="display:none">some description text</span>
  <div itemprop="address" itemscope="" itemtype="http://schema.org/PostalAddress" style="display:none">
    <span itemprop="streetAddress">my street adderss</span> 
    <span itemprop="addressLocality">Blabla</span>, <span itemprop="addressRegion">WA</span>
  </div>
  <span itemprop="telephone" style="display:none"><a href="tel:123456789"> (123) 456-6789</a></span>
  <div itemprop="geo" itemscope="" itemtype="http://schema.org/GeoCoordinates" style="display:none">
    <meta itemprop="latitude" content="47.421356">
    <meta itemprop="longitude" content="-111.235178">
  </div>
</div>

我能想到的不是隐藏内容而不是改变页面布局的唯一方法是分解LocalBusiness代码,但不确定这是否允许或可能,如果是这样的话?

OR

包装几乎整个页面是否可以
<div itemscope="" itemtype="http://schema.org/LocalBusiness">

并在整个页面中使用其他需要的代码?

1 个答案:

答案 0 :(得分:1)

是的,您可以将整个内容包装在div这样的内容中。您也可以使用bodyhtml元素。

<body itemscope itemtype="http://schema.org/LocalBusiness">
  <!-- all "itemprop" in here will belong to this "LocalBusiness",
       unless they are nested under another "itemscope" -->
</body>

itemref

另一种选择是使用itemref属性。它允许您从页面上的任何位置向项目添加属性。

<div id="a">
  <span itemprop="name">Seattle, WA</span>
  <img itemprop="image" src="img.jpg" alt="">
</div>

<div itemscope itemtype="http://schema.org/LocalBusiness" itemref="a b c">
</div>

<span id="b" itemprop="telephone">(123) 456-6789</span>

<div>
  <p id="c" itemprop="description">some description text</p>
</div>

您必须确保这些引用的属性不会嵌套在另一个itemscope下,否则它们也会被添加到此项目中。

隐藏

如果您需要隐藏微数据的元素,请使用link(对于URI值)和meta(对于任何其他字符串值)元素。默认情况下,这两个元素在浏览器样式表中隐藏。

<div itemscope itemtype="http://schema.org/LocalBusiness">
  <meta itemprop="name" content="Seattle, WA">
  <link itemprop="image" href="img.jpg">
</div>