对于网页的其他区域,标记起来很简单;即导航元素,页眉,页脚,侧栏
mainContentOfPage
不是这样;我已经看到了很多不同的方法来实现这一点,最近(我发现这个方法最奇怪)在schema.org itself上:
<div itemscope itemtype="http://schema.org/Table">
<meta itemprop="mainContentOfPage" content="true"/>
<h2 itemprop="about">list of presidents</h2>
<table>
<tr><th>President</th><th>Party</th><tr>
<tr>
<td>George Washington (1789-1797)</td>
<td>no party</td>
</tr>
<tr>
<td>John Adams (1797-1801)</td>
<td>Federalist</td>
</tr>
...
</table>
</div>
我可以用一些例子;我的页面的主要内容在这种情况下是搜索结果页面,但我也计划在其他页面上使用它(主页,产品页面等)
编辑,我找到了更多的例子:
这会有效吗?我在博客上发现了这个:
<div id="main" itemscope itemtype="http://schema.org/WebPageElement" itemprop="mainContentOfPage">
<p>The content</p>
</div>
我在另一个博客上也发现了这个更简单的例子(可能太简单了?):
<div id="content" itemprop="mainContentOfPage">
<p>The content</p>
</div>
答案 0 :(得分:5)
可以在mainContentOfPage
property上使用WebPage
,并期望WebPageElement
作为值。
但Table
不是WebPage
的孩子,true
不是预期值。所以这个例子实际上很奇怪,因为它不符合规范。
父WebPage
应使用Table
作为mainContentOfPage
的值:
<body itemscope itemtype="http://schema.org/WebPage">
<div itemprop="mainContentOfPage" itemscope itemtype="http://schema.org/Table">
</div>
</body>
编辑:更新
您的第二个示例与我的相同,只是使用更通用的WebPageElement
代替Table
。 (当然,你仍然需要一个父WebPage
项,就像我的例子一样。)
您的第三个示例与schema.org的定义不符,因为值为Text而不是预期的WebPageElement
(或子)项。
答案 1 :(得分:0)
有效选项是:
<body itemscope itemtype="http://schema.org/WebPage">
<main itemprop="mainContentOfPage" itemscope itemtype="http://schema.org/WebPageElement">
<div itemprop="about" itemscope="" itemtype="http://schema.org/Thing">
<h1 itemprop="name">whatever</h1>
</div>
</main>
</body>
当然,您可以将相关属性添加到顶级或嵌套元素,并将Thing
更改为Full Hierarchy中列出的任何其他项类型。我还建议使用mainEntity
,文档仍然没有说明是否真的有必要,但根据1st example here,使用WebPage
您可能需要指定{ {1}}:
mainEntity
无法判断这是否有效:
<body itemscope itemtype="http://schema.org/WebPage">
<header><h1 itemscope itemprop="mainEntity" itemtype="http://schema.org/Thing">whatever</h1></header>
<main itemprop="mainContentOfPage" itemscope itemtype="http://schema.org/WebPageElement">
<div itemprop="about" itemscope="" itemtype="http://schema.org/Thing">
<h2 itemprop="name">whatever</h2>
</div>
</main>
</body>
文档并未说明将<body itemscope itemtype="http://schema.org/WebPage">
<main itemprop="mainContentOfPage" itemscope itemtype="http://schema.org/WebPageElement">
<div itemprop="mainEntity" itemscope="" itemtype="http://schema.org/Thing">
<h1 itemprop="name">whatever</h1>
</div>
</main>
</body>
设置为嵌套项目。
在任何情况下,请考虑&#34; [...]隐含地假设每个网页都被声明为WebPage [...] &#34;如mainEntity
description中所述,将HTML标记用作WebPage
,<main>
或<footer>
已经提供了有关页面中使用的元素类型的信息。因此,如果实际上您不需要向这些元素或网页本身添加相关信息,那么正确使用HTML标记即可轻松完成<header>
甚至mainContentOfPage
。