You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在<figure>和<figcaption>中正确使用Microdata?Event代码遇地址报错

解决Event类型Microdata的“地址需要值”错误及figure/figcaption的正确用法

我来帮你搞定这个问题!你遇到的“地址需要值”错误,核心原因是你使用了schema.org的Event类型Microdata,但没有提供该类型要求的必填地址信息。schema.org对Event类型的定义里,address或location是必填属性,你的现有代码只添加了url和image,完全缺失这部分内容,所以校验工具会抛出错误。

同时,我会结合figure和figcaption标签,给你演示如何正确组织Microdata结构,既符合HTML语义,又满足结构化数据的要求。

错误修复+正确示例代码

首先,补全Event类型必填的地址信息,同时把figure/figcaption融入Microdata结构:

<section class="content col-sm-4 mx-auto" id="germination" itemscope itemtype="http://schema.org/Event">
  <a itemprop="url" href="http://mevocals.weebly.com/germination.html">
    <figure>
      <!-- 事件海报图片,关联到Event的image属性 -->
      <img itemprop="image" class="img-fluid rounded" 
           src="https://freedomfieldme.net/images/germinationPoster_02.png" 
           alt="Germination poster of Freedom Field Cannabis Friendly camping..." />
      <figcaption>
        <!-- 事件名称,必填属性 -->
        <h4 itemprop="name">Freedom Field Germination Campout</h4>
        <!-- 结构化地址:推荐用PostalAddress类型,更利于搜索引擎解析 -->
        <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
          <span itemprop="streetAddress">456 Campground Road</span><br>
          <span itemprop="addressLocality">Portland</span>, 
          <span itemprop="addressRegion">ME</span> 
          <span itemprop="postalCode">04101</span>
        </div>
        <!-- 可选:添加事件时间,丰富结构化数据 -->
        <p>时间:<time itemprop="startDate" datetime="2024-08-01T09:00">2024年8月1日 上午9点</time></p>
      </figcaption>
    </figure>
  </a>
</section>

关键知识点说明

  • 必填属性补全:
    Event类型必须包含address(或location,如果是关联Place类型),你可以选择两种方式:

    • 像示例里的结构化PostalAddress,提供街道、城市、州等细分信息;
    • 简化版:直接用字符串地址 <span itemprop="address">456 Campground Road, Portland, ME 04101</span>,适合不需要细分地址的场景。
  • figure/figcaption的语义化结合:
    figure用于包裹媒体内容(这里是事件海报)和对应的说明,figcaption作为说明容器,完美承载事件名称、地址等结构化数据内容,同时继承外层section的itemscope(即所有内部的itemprop都属于这个Event实例)。

  • 语法细节修正:
    你原代码里的<img>标签没有闭合,这会导致HTML语法错误,也可能影响Microdata的解析,记得补充闭合标签/>。

备选方案:如果不需要Event类型

如果你只是想标记图片和说明,而非事件信息,可以改用ImageObject类型,这样就不需要地址属性了:

<figure itemscope itemtype="http://schema.org/ImageObject">
  <a itemprop="contentUrl" href="http://mevocals.weebly.com/germination.html">
    <img itemprop="thumbnailUrl" class="img-fluid rounded" 
         src="https://freedomfieldme.net/images/germinationPoster_02.png" 
         alt="Germination poster of Freedom Field Cannabis Friendly camping..." />
  </a>
  <figcaption itemprop="caption">Freedom Field Cannabis Friendly露营活动海报:Germination</figcaption>
</figure>

最后,建议用主流的结构化数据校验工具验证你的代码,确保所有必填属性都已正确添加,避免类似错误。

内容的提问来源于stack exchange,提问作者user1692229

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:49:51