Home

Awesome

📄↔📄 WPGraphQL for Posts 2 Posts

WordPress plugin that creates GraphQL connections for all of your Posts 2 Posts connections.

Overview

Example

Let's say you have registered a Posts 2 Posts connection between the project custom post type on your site and the user object, like this:

function register_p2p_connection() {
  p2p_register_connection_type( [
    'name' => 'projects_to_managers',
    'from' => 'project',
    'to'   => 'user'
  ] );
}
add_action( 'p2p_init', 'register_p2p_connection' );

With this plugin activated, you can query for the users connected to projects, like this:

query getProjects {
  projects(first: 10) {
    nodes {
      databaseId
      title
      projectsToManagersConnection {
        nodes {
          databaseId
          name
        }
      }
    }
  }
}

You can also query from the other direction, and get the projects connected to users, like this:

query getUsers {
  users(first: 10) {
    nodes {
      databaseId
      name
      projectsToManagersConnection {
        nodes {
          databaseId
          title
        }
      }
    }
  }
}

Minimum Software Requirements

Future Enhancements

  1. Register a where arg for each post type/user object so you can query to find posts/users that are connected to them.
  2. Expose connection metadata as edge fields in the GraphQL schema.
  3. Register input fields for the create & update mutations so you can update the connections.

I think the input fields for #3 will end up looking something like this:

projectsToManagersConnections: {
    append: false
    databaseIds: [1,4,8]
}