WordPress at Your Fingertips
function is not described

WP_Meta_Query::__construct() public WP 3.2.0

Constructor.

{} It's a method of the class: WP_Meta_Query{}

No Hooks.

Return

null. Nothing.

Usage

$WP_Meta_Query = new WP_Meta_Query();
$WP_Meta_Query->__construct( $meta_query );
$meta_query(array)

Array of meta query clauses. When first-order clauses or sub-clauses use strings as their array keys, they may be referenced in the 'orderby' parameter of the parent query.

Default: false

  • relation(string)
    Optional. The MySQL keyword used to join the clauses of the query. Accepts 'AND' or 'OR'.
    Default: 'AND'

  • ...$0(array)
    Optional. An array of first-order clause parameters, or another fully-formed meta query.

    • key(string|string[])
      Meta key or keys to filter by.

    • compare_key(string)
      MySQL operator used for comparing the $key. Accepts:

      • '='
      • '!='
      • 'LIKE'
      • 'NOT LIKE'
      • 'IN'
      • 'NOT IN'
      • 'REGEXP'
      • 'NOT REGEXP'
      • 'RLIKE',
      • 'EXISTS' (alias of '=')
      • 'NOT EXISTS' (alias of '!=') Default is 'IN' when $key is an array, '=' otherwise.
    • type_key(string)
      MySQL data type that the meta_key column will be CAST to for comparisons. Accepts 'BINARY' for case-sensitive regular expression comparisons.
      Default: ''

    • value(string|string[])
      Meta value or values to filter by.

    • compare(string)
      MySQL operator used for comparing the $value. Accepts:

      • '=',
      • '!='
      • '>'
      • '>='
      • '<'
      • '<='
      • 'LIKE'
      • 'NOT LIKE'
      • 'IN'
      • 'NOT IN'
      • 'BETWEEN'
      • 'NOT BETWEEN'
      • 'REGEXP'
      • 'NOT REGEXP'
      • 'RLIKE'
      • 'EXISTS'
      • 'NOT EXISTS' Default is 'IN' when $value is an array, '=' otherwise.
    • type(string)
      MySQL data type that the meta_value column will be CAST to for comparisons. Accepts:

      • 'NUMERIC'
      • 'BINARY'
      • 'CHAR'
      • 'DATE'
      • 'DATETIME'
      • 'DECIMAL'
      • 'SIGNED'
      • 'TIME'
      • 'UNSIGNED' Default is 'CHAR'.

Changelog

Since 3.2.0 Introduced.
Since 4.2.0 Introduced support for naming query clauses by associative array keys.
Since 5.1.0 Introduced $compare_key clause parameter, which enables LIKE key matches.
Since 5.3.0 Increased the number of operators available to $compare_key. Introduced $type_key, which enables the $key to be cast to a new data type for comparisons.

Code of WP_Meta_Query::__construct() WP 5.9

public function __construct( $meta_query = false ) {
	if ( ! $meta_query ) {
		return;
	}

	if ( isset( $meta_query['relation'] ) && 'OR' === strtoupper( $meta_query['relation'] ) ) {
		$this->relation = 'OR';
	} else {
		$this->relation = 'AND';
	}

	$this->queries = $this->sanitize_query( $meta_query );
}