tribe_filter_meta_query( array $meta_query, array $where )
Removes meta query entries based on key and value.
Contents
Example usage to remove all date-related meta queries, using a regular expression:
$query->meta_query = tribe_filter_meta_query( $args[‘meta_query’], array( ‘key’ => ‘/_Event(Start|End)Date(UTC)/’ ) );
Parameters
- $meta_query
-
(array) (Required) The meta query array to filter, usually the content of the
$query->meta_query
property. - $where
-
(array) (Required) A map of criteria for the filtering that will be applied with OR logic: if an entry matches even one then it will be removed. If the value of the comparison is a regular expression, with fences, then it will be used for a
preg_match
check against the key, not a simple comparison.
Return
(array) The filtered meta query array.
Source
File: src/functions/query.php
function tribe_filter_meta_query( array $meta_query, array $where ) { $filtered = array(); foreach ( $meta_query as $key => $entry ) { if ( ! is_array( $entry ) ) { $filtered[ $key ] = $entry; continue; } foreach ( $where as $where_key => $where_value ) { if ( isset( $entry[ $where_key ] ) ) { if ( tribe_is_regex( $where_value ) ) { $var = $entry[ $where_key ]; if ( preg_match( $where_value, $var ) ) { continue 2; } } elseif ( $entry[ $where_key ] == $where_value ) { continue 2; } } } $filtered[ $key ] = $entry; } return $filtered; }
Changelog
Version | Description |
---|---|
4.9.5 | Introduced. |