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

使用WPGraphQL获取WordPress文章时modified字段返回创建日期问题

解决WPGraphQL中modified字段与date字段值相同的问题

问题场景

在Vue.js项目中使用Apollo通过WPGraphQL v1.26.0获取WordPress文章时,modified字段始终返回与date(创建日期)相同的值,尝试通过lastEditedBy查询也得到了不匹配的日期结果。

可能原因及解决办法

1. WordPress修订机制未正确触发

WordPress的post_modified字段(对应WPGraphQL的modified)仅在文章生成修订版本时才会更新。如果出现字段值相同的情况,先排查:

  • 检查文章后台是否存在修订记录:进入文章编辑页,查看右侧「修订」面板,确认有修改历史。
  • 确认wp-config.php中的修订设置:确保WP_POST_REVISIONS未被设为false,建议设置为true或具体数字(如define('WP_POST_REVISIONS', 3);),开启修订功能。
  • 注意:快速编辑部分内容可能不会生成修订版本,需进入完整编辑页修改并更新文章,触发修订记录。

2. WPGraphQL字段异常或缓存问题

  • 检查是否有自定义代码修改了modified字段的返回逻辑:比如主题或插件中使用graphql_post_fields等钩子篡改了字段值。
  • 清除WPGraphQL缓存:在WordPress后台进入「GraphQL」->「设置」,点击「清除缓存」按钮,重新查询。
  • 尝试更新WPGraphQL到最新版本:旧版本可能存在字段映射的bug,升级后大概率能解决问题。

3. lastEditedBy查询逻辑错误

你之前的lastEditedBy查询路径完全错误:lastEditedBy关联的是最后编辑文章的用户,而用户的posts字段返回的是该用户发布的所有文章的创建日期,和当前文章的修改日期无关。

正确的查询方式

如果modified字段依然异常,可以直接查询文章的修订版本,取最新修订的日期作为最后修改时间:

query FetchPostByUri($uri: String!) {
  postBy(uri: $uri) {
    date
    modified
    # 查询文章的最新修订版本
    revisions(first: 1, where: {orderby: DATE, order: DESC}) {
      nodes {
        date # 修订版本的创建日期即为修改时间
        author {
          node {
            name
          }
        }
      }
    }
  }
}

这个查询会返回最新的1条修订记录,其date字段就是文章最后一次修改的时间。

额外排查步骤

  • 禁用其他第三方插件,测试是否是插件冲突导致WPGraphQL字段异常。
  • 在WPGraphQL的GraphiQL编辑器中直接执行查询,排除前端Apollo缓存的影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 16:52:39