【问题标题】:What microdata should I use for a blog?我应该为博客使用哪些微数据?
【发布时间】:2012-02-10 13:38:35
【问题描述】:

博客基本上是一个页面,列出了大约 10 篇文章的摘要,每个项目的标题都链接到完整的文章页面。

我见过:

我在哪里使用这些?

现在在我拥有的单个文章页面上:

  <article itemscope itemtype="http://schema.org/Article">       

    <h1 itemprop="name"> <a href="..."> A title...  </a> </h1>    

    <div itemprop="articleBody">
       bla bla
    </div>

    ...

  </article>

我想这没问题,但我在文章索引页面上该怎么做?我是否将这些添加到每篇文章并将itemscope itemtype="http://schema.org/Blog" itemprop="blogPosts" 添加到所有文章的容器元素中?因为在文档中,该文章似乎不是博客的子项...

【问题讨论】:

    标签: html seo blogs microdata


    【解决方案1】:

    我会为您的全部页面使用http://schema.org/WebPage,因为这允许您定义诸如面包屑/导航之类的内容,这些内容对于描述网站很重要,无论特定内容如何。

    在微数据模式中仍然需要做很多工作,您已经指出了似乎存在的差距 - 文章与我可以看到的任何其他内容之间没有父/子关系(例如“Articleindex”或“文章”)。

    我还没有真正读过任何表明这个父子层次结构非常重要的东西,除非父级正在表达对传达很重要的属性,所以我认为你可以侥幸逃脱。

    但是,您没有提到“文章”是什么类型的内容。如果它们本质上更具新闻性或官方性(例如新闻文章、研究论文等),我会为每篇文章使用http://schema.org/Article,而不必担心文章索引页面。否则,请为每个使用 http://schema.org/Blog http://schema.org/BlogPosting。

    【讨论】:

      【解决方案2】:

      文章和博客架构描述现在非常模糊,将来可能会更改,但我相信博客架构与博客更相关(它甚至隐含在文章架构描述中)向下翻页,在“More specific types”下)。

      因此,您可以从使用更高级别的架构定义您的主博客页面开始:

      <!DOCTYPE html itemscope itemtype="http://schema.org/Blog">
      <meta itemprop="creator" content="Creator of the blog">
      <meta itemprop="name" content="Title of your Blog">
      <meta itemprop="description" content="Description of your blog">
      <meta itemprop="image" content="http://www.yourblog.com/main/image/pic.gif">
      

      您可以使用二级博客架构BlogPosting 定义您的博客页面,并定义适当的项目属性,如下所示:

      <!DOCTYPE html itemscope itemtype="http://schema.org/BlogPosting">
      <meta itemprop="author" content="Author of your blog">
      <meta itemprop="name" content="Title of your content">
      <meta itemprop="description" content="Description of your post">
      <meta itemprop="image" content="http://www.yourblog.com/post/image/pic.gif">
      

      呃,复杂 :P,您可以使用一百万种属性,但只关注最重要的属性。

      【讨论】:

        【解决方案3】:

        我同意其他人所说的主题非常模糊的说法。尽管如此,我还是会尝试表达我对此事的看法,并在我的博客上向您展示我是如何做到的。

        我在同一个文档中同时使用 WebPageBlog 项目类型来标记不同的内容。

        网页

        我在 body 标记上使用 WebPage 项目类型(但您也可以使用面包屑的任何其他父项)。通过这样做,我可以标记我的面包屑。

        <body itemscope itemtype="http://schema.org/WebPage">
          <ul itemprop="breadcrumb">
            <li>
              <a href="foo">foo</a> 
            </li>
        
            <li>
              <a href="foo/bar">bar</a>
            </li>
        
            <li>
              <a href="foo/bar/baz">baz</a>
            </li>
          </ul>
            
            ...
            
        </body>
        

        博客文章

        当我循环博客文章时,我在包含所有博客文章的包装器上使用 Blog 项目类型。我用属性blogPosts 标记每篇文章,当然使用BlogPosting 作为项目类型。

        <section itemscope itemtype="http://schema.org/Blog">
          <article itemprop="blogPosts" itemscope itemtype="http://schema.org/BlogPosting">
            ...
          </article>
            
          <article itemprop="blogPosts" itemscope itemtype="http://schema.org/BlogPosting">
            ...
          </article>
            
          ...
            
        </section>
        

        文章页面

        有关此意见的更新,请参阅下面的编辑

        在文章登录页面上,我使用Blog 项目类型。但我确实将帖子标记为BlogPosting 项目。

        <article itemscope itemtype="http://schema.org/BlogPosting">
          ...
        </article>
        

        我可以看到您想要使用 Blog 项目类型标记某些内容的唯一原因是因为 blogPosts 属性以及说它是博客的事实。我认为您通过将文章标记为BlogPosting 来实现说这是一个博客。 我也不认为在这种情况下使用该属性是正确的,因为它以复数形式使用。对我来说,这反映了不同的使用领域。


        编辑

        我不确定模式是否已经扩展,或者我是否第一次错过了它,但Blog 项目现在有一个名为blogPost 的属性,即单数形式blogPosts。那么我会说将主要元素标记为Blog 项目并使用文章的blogPost 属性并将其标记为BlogPosting 项目更有意义

        【讨论】:

        • 为什么在循环文章中你会使用itemprop="blogPosts" insead 而不是itemprop="blogPost"
        • @Pikk 应该在收藏页面上使用复数形式。更好的语义..
        • 看起来schema.org/BlogPosting 上写着 blogPost 取代 blogPosts - 所以据我了解 blogPost 替换 blogPosts,blogPosts 被 blogPost 替换
        • 我的看法;他们解释了以单数和复数形式使用的属性。但是,如果两者都被定义,则单数标记将取代复数标记。所以两者都不能被schema.org/Blog标记
        • Google 也使用标记 firebase.googleblog.com
        【解决方案4】:

        这里有其他重要的itemscopes可供使用

        Person 的示例

        <div itemscope itemtype="http://schema.org/Person">
             <span itemprop="name">Mahdi Maghrooni</span>
             <img src="http://maghrooni.ir/img/users/FCwNdpWQKGQqiZphN6rj2YuHY3bXrF.jpg" itemprop="image" alt="Maghrooni" />
        </div>
        

        【讨论】:

          【解决方案5】:

          哎呀!此代码错误!

          <!DOCTYPE html itemscope itemtype="http://schema.org/Blog">
          

          你应该使用这个代码:

          <!DOCTYPE html>
          

          代替:

          <!DOCTYPE html itemscope itemtype="http://schema.org/Blog">
          

          当我们声明博客的类型时,可以在body标签中添加:

          <body itemscope='' itemtype='http://schema.org/Blog'>
          

          在本节中,我们可以使用“Itemprop”作为 itemtype 的属性。
          我们谈论的是网站的类型,而不是网站的基本语言。

          【讨论】:

            猜你喜欢
            • 2011-09-17
            • 1970-01-01
            • 2017-08-11
            • 1970-01-01
            • 2021-02-22
            • 1970-01-01
            • 1970-01-01
            • 2014-04-21
            • 2011-11-21
            相关资源
            最近更新 更多