GraphQL request for getting all Pages with a specific Keyword
You can filtering on key-value pairs, combining them in AND or OR expressions as needed.
The following query fetches the ID, title and URL of all Pages (which by definition means only Tridion Sites content) with a Keyword "010 News" or "000 Home" set in the "Sitemap [Navigation]" Category:
{
items(
filter: {
itemTypes: [PAGE],
or: [
{keyword: { categoryName: "Sitemap [Navigation]", key: "010 News"}},
{keyword: { categoryName: "Sitemap [Navigation]", key: "000 Home"}}
]
}
) {
edges {
node {
itemId
title
... on Page {
url
}
}
}
}
}
The response might look something like this:
{
"data": {
"items": {
"edges": [
{
"node": {
"itemId": 262,
"title": "000 Home",
"url": "/index.html"
}
},
{
"node": {
"itemId": 331,
"title": "000 News Index",
"url": "/articles/news/index.html"
}
},
{
"node": {
"itemId": 332,
"title": "Example News 2",
"url": "/articles/news/news2.html"
}
},
{
"node": {
"itemId": 334,
"title": "Example News 3",
"url": "/articles/news/news3.html"
}
},
{
"node": {
"itemId": 335,
"title": "Example News 1",
"url": "/articles/news/news1.html"
}
},
{
"node": {
"itemId": 345,
"title": "Example News 4",
"url": "/articles/news/news4.html"
}
}
]
}
}
}