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

如何让Blogger模板的NewsArticle JSON-LD在文章页已有JSON-LD时不生效

解决Blogger模板JSON-LD冲突的可行方案

针对你遇到的模板中NewsArticle JSON-LD和招聘文章内JobPosting JSON-LD共存的问题,这里提供三个可落地的方案,无需批量修改100多篇新闻文章:

方案一:自定义字段+Blogger条件标签(推荐,服务器端判断)

利用Blogger的自定义数据字段区分文章类型,让模板只给非招聘文章输出NewsArticle结构化数据:

  1. 打开每篇招聘文章的编辑器,进入「设置」>「自定义数据」,添加键值对:
    • 键:is_job_post
    • 值:true
  2. 进入Blogger模板编辑模式,找到你添加的NewsArticle JSON-LD代码,用以下条件标签包裹:
<b:if cond='!data:view.post.metadata.is_job_post'>
  <!-- 这里保留你原来的NewsArticle类型JSON-LD代码 -->
</b:if>

原理:只有没有is_job_post自定义字段的文章(即新闻类)才会加载模板里的JSON-LD,招聘文章会跳过这段代码,只显示你单独添加的JobPosting数据。

方案二:JavaScript动态检测移除(无需修改文章)

如果不想手动给每篇招聘文章加字段,用JS在页面加载后自动检测并删除模板里的NewsArticle JSON-LD:

  1. 先给模板里的NewsArticle JSON-LD加一个唯一ID,方便定位:
<script type="application/ld+json" id="news-article-ld">
  <!-- 你原来的NewsArticle JSON-LD内容 -->
</script>
  1. 在模板的</body>标签前插入这段JS代码:
<script>
document.addEventListener('DOMContentLoaded', function() {
  const allLdScripts = document.querySelectorAll('script[type="application/ld+json"]');
  let hasJobPost = false;

  allLdScripts.forEach(script => {
    try {
      const ldData = JSON.parse(script.textContent);
      const ldTypes = Array.isArray(ldData['@type']) ? ldData['@type'] : [ldData['@type']];
      if (ldTypes.includes('JobPosting')) {
        hasJobPost = true;
      }
    } catch(err) {
      // 解析失败跳过当前脚本
    }
  });

  if (hasJobPost) {
    const newsLdElement = document.getElementById('news-article-ld');
    if (newsLdElement) newsLdElement.remove();
  }
});
</script>

原理:页面加载完成后遍历所有JSON-LD脚本,检测到存在JobPosting类型时,删除模板里的NewsArticle脚本。Rich Results Test会模拟页面加载流程,能识别到最终的结构化数据。

方案三:标签分类+条件标签(适合已用标签管理的场景)

如果你的招聘文章都统一添加了特定标签(比如「招聘启事」),直接用标签做判断:

  1. 确认所有招聘文章都带有同一个标签(比如「招聘启事」),没有的话补加。
  2. 修改模板里的NewsArticle代码,用标签条件包裹:
<b:if cond='!data:post.labels any (label => label.name == "招聘启事")'>
  <!-- 这里保留你原来的NewsArticle类型JSON-LD代码 -->
</b:if>

原理:只要文章包含指定标签,就不加载模板里的JSON-LD,适合已经用标签做内容分类的情况。

方案对比

  • 方案一:最稳定,服务器端直接控制输出,无前端依赖,但需要手动给招聘文章加字段,适合招聘文章数量少的情况。
  • 方案二:零文章修改成本,自动适配,但依赖前端JS,极端情况下可能有加载延迟(Rich Results Test一般能正常识别),适合招聘文章多的情况。
  • 方案三:操作最简单,但要求所有招聘文章标签统一,适合已有标签体系的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 01:39:57