Description
Eliminates empty items and ensures that a ‘relation’ is set.
Parameters
- $queries
-
(array) (Required) Array of query clauses.
Return
(array) Sanitized array of query clauses.
Source
File: wp-includes/class-wp-meta-query.php
public function sanitize_query( $queries ) {
$clean_queries = array();
if ( ! is_array( $queries ) ) {
return $clean_queries;
}
foreach ( $queries as $key => $query ) {
if ( 'relation' === $key ) {
$relation = $query;
} elseif ( ! is_array( $query ) ) {
continue;
} elseif ( $this->is_first_order_clause( $query ) ) {
if ( isset( $query['value'] ) && array() === $query['value'] ) {
unset( $query['value'] );
}
$clean_queries[ $key ] = $query;
} else {
$cleaned_query = $this->sanitize_query( $query );
if ( ! empty( $cleaned_query ) ) {
$clean_queries[ $key ] = $cleaned_query;
}
}
}
if ( empty( $clean_queries ) ) {
return $clean_queries;
}
if ( isset( $relation ) && 'OR' === strtoupper( $relation ) ) {
$clean_queries['relation'] = 'OR';
$this->has_or_relation = true;
} elseif ( 1 === count( $clean_queries ) ) {
$clean_queries['relation'] = 'OR';
} else {
$clean_queries['relation'] = 'AND';
}
return $clean_queries;
}
Changelog
Version | Description |
4.1.0 | Introduced. |