如何使用where子句执行WpGraphQL查询?

时间:2018-02-21 18:11:02

标签: graphql wp-api graphiql

这很好用

  query QryTopics {
    topics {
      nodes {
          name
          topicId
          count
      }
    }
  }

但我想要一个过滤结果。我是graphql的新手,但我看到这个集合上的一个名为' where',' first',' last','& #39;等等...我该怎么用呢?它的类型是' RootTopicsTermArgs'这可能是我的架构自动生成的东西。它有一些领域,其中一个是无子女的'布尔值我尝试做的只是返回主题(Wordpress中的自定义分类),这些主题都标有帖子。基本上它阻止我在客户端上这样做。

data.data.topics.nodes.filter(n => n.count !== null)

有人能指导我使用带有集合的args的好例子吗?我已经尝试了我能想到的每种语法排列。计有

  topics(where:childless:true)
  topics(where: childless: 'true')
  topics(where: new RootTopicsTermArgs()) 
  etc... 

显然这些都是错的。

1 个答案:

答案 0 :(得分:3)

如果自定义分类法(如主题)已注册到" show_in_graphql"并且是您的Schema的一部分,您可以使用如下参数进行查询:

query Topics {
  topics(where: {childless: true}) {
    edges {
      node {
        id
        name
      }
    }
  }
}

此外,您可以将静态查询与变量结合使用,如下所示:

query Topics($where:RootTopicsTermArgs!) {
  topics(where:$where) {
    edges {
      node {
        id
        name
      }
    }
  }
}

$variables = {
  "where": {
    "childless": true
  }
};

我建议使用一个GraphiQL IDE,例如https://github.com/skevy/graphiql-app,它将通过在您键入时提供提示以及无效查询的可视指示器来帮助验证您的查询。

您可以在此处查看使用参数查询术语的示例:https://playground.wpgraphql.com/#/connections-and-arguments