Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hsimah-services/wp-graphql-metabox
WPGraphQL for Meta Box
https://github.com/hsimah-services/wp-graphql-metabox
Last synced: 3 months ago
JSON representation
WPGraphQL for Meta Box
- Host: GitHub
- URL: https://github.com/hsimah-services/wp-graphql-metabox
- Owner: hsimah-services
- Created: 2019-04-24T22:48:06.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2023-05-11T01:56:55.000Z (over 1 year ago)
- Last Synced: 2024-08-02T05:15:25.971Z (6 months ago)
- Language: PHP
- Size: 39.1 KB
- Stars: 24
- Watchers: 6
- Forks: 4
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-wordpress-gatsby - WPGraphQL for Metabox - This FREE plugin from @hsimah exposes fields registered using the popular http://MetaBox.io to the WPGraphQL Schema. (Plugins / WordPress)
README
# WPGraphQL-MetaBox: WPGraphQL provider for Meta Box
## Quick Install
Download and install like any WordPress plugin.## Documentation
The WPGraphQL documentation can be found [here](https://docs.wpgraphql.com).- Requires PHP 7.3+
- Requires WordPress 5.4+
- Requires WPGraphQL 1.1.3+
- Requires Meta Box 5.3.8+
- Requires MB User Meta extension for User fields## Overview
This plugin provides an integration for [Meta Box](https://metabox.io/) and [WPGraphQL](https://www.wpgraphql.com/).By simply adding an extra `graphql_name` property to the field registration the field will be exposed in the GraphQL schema.
## Usage:
**This assume you know how to expose custom post types in WPGraphQL - read their documentation for further info.**Using Meta Box, define a custom field. Copy and paste the generated code to your `functions.php` (or where ever you store your custom code).
### wp-graphql-metabox options
|option|type|effect|
|--|--|--|
|`graphql_name`|`string`|adds the field to the GraphQL object(s) identified in `post_types`|
|`graphql_mutate`|`boolean`|adds the field to the GraphQL object(s) create and update mutation input|Add in the `graphql_name` to the field definition:
```
$meta_boxes[] = [
'title' => 'Extra Fields',
'id' => 'extra-fields',
'post_types' => [
0 => 'post',
],
'context' => 'after_title',
'priority' => 'high',
'autosave' => true,
'fields' => [
[
'id' => 'a_random_number',
'name' => 'A Random Number',
'type' => 'number',
'std' => 5,
'columns' => 2,
'size' => 3,
'graphql_name' => 'randomNumber',
'graphql_mutate' => true
],
],
];
```That's it. The field `randomNumber` will be exposed on the type `post`. This will work for any custom post types you may create.
**NB**: You must expose custom types by adding `show_in_graphql` to the configuration of the CPT.
A simple query might look like this:
```
query {
posts {
nodes {
title
content
randomNumber
}
}
}
```## Limitations
Currently the plugin only supports custom fields on `post` and `user` types (ie no Settings Pages).Currently the plugin only supports using the following Meta Box types:
- `taxonomy`
- `taxonomy_advanced`
- `switch`
- `checkbox`
- `checkbox_list`
- `background`
- `color`
- `custom_html`
- `date`
- `heading`
- `datetime`
- `oembed`
- `password`
- `radio`
- `textarea`
- `time`
- `select`
- `email`
- `tel`
- `text`
- `url`
- `wysiwyg`
- `fieldset_text`
- `select_advanced`
- `text_list`
- `key_value`
- `number`
- `range`
- `single_image`
- `user`
- `post`
- `group`
If you require a field which is not supported please feel free to submit an issue (or better yet, a PR!)