matteodem / wp-graphql-facetwp

WPGraphQL FacetWP integration plguin

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Logo

WPGraphQL-FacetWP: WPGraphQL provider for FacetWP

Quick Install

Download and install like any WordPress plugin.

Documentation

The WPGraphQL documentation can be found here. The FacetWP documentation can be found here.

  • Requires WPGraphQL 1.0.4+
  • Requires FacetWP 3.5.7+

Overview

This plugin exposes configured facets through the graph schema. Once registered for a type, a query is available. The payload includes both facet choices and information and a connection to the post type data. This allows for standard GraphQL pagination of the returned data set.

This plugin has been tested and is functional with SearchWP.

Usage:

It is assumed that facets have been configured

To register a FacetWP query in the WPGraphQL schema for a WordPress post type (eg post) simply call the following function:

// Register facet for Posts
add_action( 'graphql_register_types', function () {
  register_graphql_facet_type( 'post' );
} );

This will create a WPGraphQL postFacet field on the RootQuery. The payload includes a collection of queried facets and a posts connection. The connection is a standard WPGraphQL connection supporting pagination and server side ordering. The connection payload only includes filtered posts.

A simple query might look like this:

query GetPosts($query: FacetQueryArgs, $after: String, $search: String, $orderBy: [PostObjectsConnectionOrderbyInput]) {
  postFacet(where: {status: PUBLISH, query: $query}) {
    facets {
      selected
      name
      label
      choices {
        value
        label
        count
      }
    }
    posts(first: 10, after: $after, where: {search: $search, orderby: $orderBy}) {
      pageInfo {
        hasNextPage
        endCursor
      }
      nodes {
        title
        excerpt
      }
    }
  }
}

Limitations

Currently the plugin only has been tested using Checkbox and Radio facet types. Support for additional types is in development.

About

WPGraphQL FacetWP integration plguin

License:GNU Lesser General Public License v3.0


Languages

Language:PHP 100.0%