有没有办法通过Microdata schema.org介绍菜单结构
Parent1 | Parent2 | Parent3
______________________________
Sub 1-1 | Sub-2-1 | Sub3-1
______________________________
Sub 1-2 | Sub-2-2 | Sub3-2
______________________________
Sub 1-3 | Sub-2-3 | Sub3-3
和代码:
<div>
<ul>
<li>
<span>Paent1</span><div><ul><li>sub1-1</li><li>sub1-2</li><li>sub1-3</li></ul>
</li>
<li>
<span>Paent2...</ul>
</li>
<li>
<span>Paent3....</ul>
</li>
</ul>
<div>
我试过这样的事:
<div itemscope itemtype="http://schema.org/WebPageElement">
<meta itemprop="name" content="Main menu" />
<ul>
<li itemtype="http://schema.org/SiteNavigationElement">
<span itemprop="name">Paent1</span><div><ul><li>sub1-1</li><li>sub1-2</li><li>sub1-3</li></ul>
</li>
<li itemtype="http://schema.org/SiteNavigationElement">
<span itemprop="name">Paent2...</ul>
</li>
<li itemtype="http://schema.org/SiteNavigationElement">
<span itemprop="url">Paent3....</ul>
</li>
</ul>
<div>
答案 0 :(得分:4)
您没有使用任何属性将嵌套项与其父项相关联。有关此问题的简短示例,请参阅my answer on Webmasters的第二部分。
我不认为Schema.org为此案例提供了适当的类型和属性。此外,SiteNavigationElement
is probably (not definitely) meant for the whole navigation menu,而非其单一链接。
我能想到的最接近的是:
<div itemscope itemtype="http://schema.org/SiteNavigationElement">
<ul itemprop="about" itemscope itemtype="http://schema.org/ItemList">
<li itemprop="itemListElement">…</li>
<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ItemList">…
<ul>
<li itemprop="itemListElement">…</li>
<li itemprop="itemListElement">…</li>
</ul>
</li>
<li itemprop="itemListElement">…</li>
</ul>
</div>
这是SiteNavigationElement
,其主题由ItemList
组成,此列表的某些条目再次由ItemList
组成。但这有点滥用,尤其是the itemListElement
property expects Text,而不是其他ItemList
项。
还有一个问题是itemListElement
的值是另一个ItemList
,不能拥有自己的值。人们可以通过使用:
<!-- … -->
<li itemprop="itemListElement">AAA
<ul itemprop="about" itemscope itemtype="http://schema.org/ItemList">
<li itemprop="itemListElement">BBB</li>
<li itemprop="itemListElement">CCC</li>
</ul>
</li>
<!-- … -->
但问题是:itemListElement
值不是&#34; AAA&#34;但是&#34; AAA BBB CCC&#34;。
所以也许:
<!-- … -->
<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ItemList">AAA
<meta itemprop="name" content="AAA" />
<ul>
<li itemprop="itemListElement">BBB</li>
<li itemprop="itemListElement">CCC</li>
</ul>
</li>
<!-- … -->
这会给出正确的结构,但是,嗯......它很难看,不是吗?必须复制&#39; AAA&#39;的名称。条目。
为什么你想首先用Microdata标记这个?您是否期望消费者(如搜索引擎)选择这种方式?难道他们不能简单地解析HTML,因为使用li
和嵌套的ul
元素已经传达了结构吗?根据您的需要,您可以使用"local" Microdata vocabulary。