From d45a546cee41a766d2e78039b429bb186d14a233 Mon Sep 17 00:00:00 2001 From: Sean Campbell Date: Tue, 8 Mar 2022 14:48:32 -0500 Subject: [PATCH 1/2] feat: support meta query by array of values https://github.com/wp-graphql/wp-graphql-meta-query/issues/14#issuecomment-577724821 closes #20, #14 --- wp-graphql-meta-query.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/wp-graphql-meta-query.php b/wp-graphql-meta-query.php index bfe26f6..90e49e7 100644 --- a/wp-graphql-meta-query.php +++ b/wp-graphql-meta-query.php @@ -267,6 +267,10 @@ public function register_types( $type_name, TypeRegistry $type_registry ) { 'type' => 'String', 'description' => __( 'Custom field value', 'wp-graphql' ), ], + 'values' => array( + 'type' => array( 'list_of' => 'String' ), + 'description' => __( 'Custom field values, will override \'value\'', 'wp-graphql' ), + ), 'compare' => [ 'type' => $type_name . 'MetaCompareEnum', 'description' => __( 'Custom field value', 'wp-graphql' ), @@ -321,7 +325,12 @@ public function map_input_fields( $query_args, $input_args ) { } foreach ( $meta_query['metaArray'] as $meta_query_key => $value ) { $meta_query[] = [ - $meta_query_key => $value, + $meta_query_key => array( + 'key' => $value['key'], + 'compare' => $value['compare'], + 'type' => $value['type'], + 'value' => $value['values'] ?? $value['value'], + ), ]; } } From 9e56244fa1b5b20f1855ee0dcdbe0519dffe33c7 Mon Sep 17 00:00:00 2001 From: Sean Campbell Date: Wed, 9 Mar 2022 10:56:40 -0500 Subject: [PATCH 2/2] fix: better var names --- wp-graphql-meta-query.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/wp-graphql-meta-query.php b/wp-graphql-meta-query.php index 90e49e7..e87aecd 100644 --- a/wp-graphql-meta-query.php +++ b/wp-graphql-meta-query.php @@ -323,13 +323,13 @@ public function map_input_fields( $query_args, $input_args ) { if ( 2 < count( $meta_query['metaArray'] ) ) { unset( $meta_query['relation'] ); } - foreach ( $meta_query['metaArray'] as $meta_query_key => $value ) { + foreach ( $meta_query['metaArray'] as $meta_query_index => $meta_query_value ) { $meta_query[] = [ - $meta_query_key => array( - 'key' => $value['key'], - 'compare' => $value['compare'], - 'type' => $value['type'], - 'value' => $value['values'] ?? $value['value'], + $meta_query_index => array( + 'key' => $meta_query_value['key'], + 'compare' => $meta_query_value['compare'], + 'type' => $meta_query_value['type'], + 'value' => $meta_query_value['values'] ?? $meta_query_value['value'], ), ]; }