As it stands WP-GraphQL doesn't implement the totalCount
field. This is due to a number of reasons, including the performance impact that would come with such a query.
We found that we needed this for a site being developed, so built up this basic plugin.
Whilst this doesn't implement the totalCount
field as per the GraphQL docs, it does add a total
field to the pageInfo
object that is used for pagination. This seemed like the most sensible place to put it, as 99% of the time, we'll be using this field to pull back the total number of items, alongside our paginated result.
To retrieve to total count, it's a simple case of requesting the total
field with your pageInfo
. See below:
{ posts(first:1) { edges { node { id title } } pageInfo { total hasNextPage endCursor } } }
This will then give you a result as such:
{ "data": { "posts": { "edges": [ { "node": { "id": "cG9zdDozOA==", "title": "Post B" } } ], "pageInfo": { "total": 2, "hasNextPage": true, "endCursor": "YXJyYXljb25uZWN0aW9uOjM4" } } } }
As you can see, the total number of items is accessible via data.posts.pageInfo.total
.
Contributions are welcome. This was a very quick build and as such there are probably performance gains to be had.
Feel free to make a PR against this repo!