An extension that integrates SearchWP into WPGraphQL.
- Install & activate SearchWP v3.1.9+
- Install & activate WPGraphQL v0.5.0+
- Clone or download the zip of this repository into your WordPress plugin directory & activate the plugin.
- Search across multiple post-types.
- Filter taxonomy, meta, date, and more...
query {
searchWP(first: 5, where: { input: "Hello World" }) {
nodes {
... on Post {
id
}
... on Page {
id
}
}
}
}
The input
parameter is the base search field, and request on all searchWP
queries.
query {
searchWP(first: 5, where: { input: "Hello World", engine: "other-engine-slug" }) {
nodes {
... on Post {
id
... more post fields
}
... on Page {
id
... more page fields
}
}
}
}
The engine
parameter by default is set to default. An important thing to remember is that in order for a post-type to be returned as an searchWP
result be enable on the SearchWP engine, Find out more about SearchWP's engine configuration here, and it must have exclude_from_search
set to false
and show_in_graphql
set to true
in it's Post-type configurations.
query {
searchWP(first: 5, where: { input: "Hello World", taxonomies: { taxArray: [{ taxonomy: TAG, field: SLUG, terms: "test_tag" }] } }) {
nodes {
... on Post {
id
... more post fields
}
... on Page {
id
... more page fields
}
}
}
}
The taxonomies
parameter is designed to be identical to the enhanced taxQuery
parameter used by WPGraphQL Tax Query. Another important thing to remember about SearchWP and by relation QL Search, is that in order to query a specific taxonomy, that taxonomy must be given a weight on the engine being used. In the cause of the query above that is the default engine. Find out more about SearchWP's engine configuration here.
query {
searchWP(first: 5, where: { input: "Hello World", meta: { metaArray: [{ key: "test_meta", value: "meta value", compare: EQUAL_TO }] } }) {
nodes {
... on Post {
id
... more post fields
}
... on Page {
id
... more page fields
}
}
}
}
The meta
parameter is designed to be identical to the enhanced metaQuery
parameter used by WPGraphQL Meta Query.
query {
searchWP(first: 5, where: { input: "Hello World", date: [{ year: 1970, month: 1, day: 1 }] }) {
nodes {
... on Post {
id
... more post fields
}
... on Page {
id
... more page fields
}
}
}
}
The date
parameter is designed to be identical to the date
parameter on the core WPGraphQL post object connection.