Automattic\WooCommerce\Blocks\BlockTypes
ProductQuery::merge_queries()
Merge in the first parameter the keys "post_in", "meta_query" and "tax_query" of the second parameter.
Метод класса: ProductQuery{}
Хуков нет.
Возвращает
Массив
.
Использование
// private - только в коде основоного (родительского) класса $result = $this->merge_queries( ...$queries );
- ...$queries(array[]) (обязательный)
- Query arrays to be merged.
Код ProductQuery::merge_queries() ProductQuery::merge queries WC 9.8.1
private function merge_queries( ...$queries ) { $merged_query = array_reduce( $queries, function( $acc, $query ) { if ( ! is_array( $query ) ) { return $acc; } // If the $query doesn't contain any valid query keys, we unpack/spread it then merge. if ( empty( array_intersect( $this->get_valid_query_vars(), array_keys( $query ) ) ) ) { return $this->merge_queries( $acc, ...array_values( $query ) ); } return $this->array_merge_recursive_replace_non_array_properties( $acc, $query ); }, array() ); /** * If there are duplicated items in post__in, it means that we need to * use the intersection of the results, which in this case, are the * duplicated items. */ if ( ! empty( $merged_query['post__in'] ) && is_array( $merged_query['post__in'] ) && count( $merged_query['post__in'] ) > count( array_unique( $merged_query['post__in'] ) ) ) { $merged_query['post__in'] = array_unique( array_diff( $merged_query['post__in'], array_unique( $merged_query['post__in'] ) ) ); } return $merged_query; }