diff --git a/includes/Traits/Tax_Query.php b/includes/Traits/Tax_Query.php index aa42c16..b1261ff 100644 --- a/includes/Traits/Tax_Query.php +++ b/includes/Traits/Tax_Query.php @@ -12,7 +12,7 @@ public function process_tax_query() { } public function parse_tax_query( $queries ) { - $tax_query = []; + $tax_query = array(); // Don't process empty array of queries. if ( isset( $queries['queries'] ) && count( $queries['queries'] ) > 0 ) { // Handle the relation parameter. @@ -24,7 +24,15 @@ public function parse_tax_query( $queries ) { if ( isset( $query['taxonomy'] ) && isset( $query['terms'] ) && count( $query['terms'] ) > 0 ) { $processed_query = array_filter( $query, fn( $key ) => 'id' !== $key, ARRAY_FILTER_USE_KEY ); $processed_query['include_children'] = filter_var( $query['include_children'], FILTER_VALIDATE_BOOLEAN ); - $processed_query['terms'] = [ ...array_map( fn( $term ) => get_term_by( 'name', $term, $query['taxonomy'] )->term_id, $query['terms'] ) ]; + $processed_query['terms'] = array_filter( + array_map( + function ( $term ) use ( $query ) { + $term_obj = get_term_by( 'name', $term, $query['taxonomy'] ); + return $term_obj ? $term_obj->term_id : null; + }, + $query['terms'] + ) + ); $tax_query[] = $processed_query; } }