WP_Meta_Query::__construct( array $meta_query = false )

Constructor.


Parameters

$meta_query

(array) (Optional) 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.

  • '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 is ''.
    • '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'.

Default value: false


Top ↑

Source

File: wp-includes/class-wp-meta-query.php

	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 );
	}


Top ↑

Changelog

Changelog
Version Description
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.
5.1.0 Introduced $compare_key clause parameter, which enables LIKE key matches.
4.2.0 Introduced support for naming query clauses by associative array keys.
3.2.0 Introduced.

Top ↑

User Contributed Notes

You must log in before being able to contribute a note or feedback.