对于网页的其他区域,标记很简单;即导航元素,页眉,页脚,侧边栏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>
最佳答案
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
(或子级)项目。