对于网页的其他区域,标记很简单;即导航元素,页眉,页脚,侧边栏

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(或子级)项目。

07-24 09:54