From c769a88d08e8e869be4321422645e01b848b071c Mon Sep 17 00:00:00 2001 From: Felipe Elia Date: Mon, 29 Aug 2022 11:26:42 -0300 Subject: [PATCH] Account for difference on how mapping is returned on ES 5 --- includes/classes/Indexable.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/includes/classes/Indexable.php b/includes/classes/Indexable.php index 24b32b1d5d..5f15a97037 100644 --- a/includes/classes/Indexable.php +++ b/includes/classes/Indexable.php @@ -1210,8 +1210,12 @@ public function get_distinct_meta_field_keys( $blog_id = null ) { $mapping = $this->get_mapping(); try { - $meta_keys = array_keys( $mapping[ $this->get_index_name( $blog_id ) ]['mappings']['properties']['meta']['properties'] ); - $meta_keys = array_values( $meta_keys ); + if ( version_compare( Elasticsearch::factory()->get_elasticsearch_version(), '7.0', '<' ) ) { + $meta_fields = $mapping[ $this->get_index_name( $blog_id ) ]['mappings']['post']['properties']['meta']['properties']; + } else { + $meta_fields = $mapping[ $this->get_index_name( $blog_id ) ]['mappings']['properties']['meta']['properties']; + } + $meta_keys = array_values( array_keys( $meta_fields ) ); sort( $meta_keys ); } catch ( \Throwable $th ) { return new \Exception( 'Meta fields not available.', 0 );