Skip to content

Instantly share code, notes, and snippets.

@gino8080
Forked from izzygld/repeater-meta.php
Created June 4, 2020 15:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gino8080/33bec3116b00e5bb802353113587aeec to your computer and use it in GitHub Desktop.
Save gino8080/33bec3116b00e5bb802353113587aeec to your computer and use it in GitHub Desktop.
Hooking up ACF repeater fields to the shema.
//acf stats repeater
array (
'key' => 'field_5a27ee3a83076',
'label' => 'Stats',
'name' => 'stats',
'type' => 'repeater',
'instructions' => '',
'required' => 0,
'conditional_logic' => 0,
'wrapper' => array (
'width' => '',
'class' => '',
'id' => '',
),
'collapsed' => '',
'min' => 0,
'max' => 0,
'layout' => 'table',
'button_label' => '',
'sub_fields' => array (
array (
'key' => 'field_5a27ee4683077',
'label' => 'Label',
'name' => 'label',
'type' => 'text',
'instructions' => '',
'required' => 0,
'conditional_logic' => 0,
'wrapper' => array (
'width' => '',
'class' => '',
'id' => '',
),
'default_value' => '',
'placeholder' => '',
'prepend' => '',
'append' => '',
'maxlength' => '',
),
array (
'key' => 'field_5a27ee4c83078',
'label' => 'Value',
'name' => 'value',
'type' => 'text',
'instructions' => '',
'required' => 0,
'conditional_logic' => 0,
'wrapper' => array (
'width' => '',
'class' => '',
'id' => '',
),
'default_value' => '',
'placeholder' => '',
'prepend' => '',
'append' => '',
'maxlength' => '',
),
),
),
//make sure to use ObjectType
use GraphQL\Type\Definition\ObjectType;
use GraphQL\Type\Definition\Type;
// stats repeater
add_action('graphql_stats_fields', function($fields) {
$statsType = new ObjectType([
'name' => 'Stat',
'description' => __( 'The description of your process type', 'your-textdomain' ),
'fields' => [
'project__Label' => [
'type' => WPGraphQL\Types::string(),
],
'projects__value' => [
'type' => WPGraphQL\Types::string(),
]
]
]);
$fields[ 'stats' ] = [
'type' => Type::listOf($statsType),
'description' => __( 'Your processes repeater field in GraphQL', 'your-textdomain' ),
'resolve' => function( \WP_Post $post ) {
$fp_metabox_process_group = get_post_meta( $post->ID, 'fp_metabox_process_group', true );
return ! empty( $fp_metabox_process_group ) ? $fp_metabox_process_group : null;
},
];
return $fields;
},99 );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment