WP_Date_Query::__construct( array $date_query, array $default_column = 'post_date' )
Constructor.
Description
Time-related parameters that normally require integer values (‘year’, ‘month’, ‘week’, ‘dayofyear’, ‘day’, ‘dayofweek’, ‘dayofweek_iso’, ‘hour’, ‘minute’, ‘second’) accept arrays of integers for some values of ‘compare’. When ‘compare’ is ‘IN’ or ‘NOT IN’, arrays are accepted; when ‘compare’ is ‘BETWEEN’ or ‘NOT BETWEEN’, arrays of two valid values are required. See individual argument descriptions for accepted values.
Parameters
- $date_query
-
(Required) Array of date query clauses.
- (array)
- 'column'
(string) Optional. The column to query against. If undefined, inherits the value of the$default_column
parameter. Accepts 'post_date', 'post_date_gmt', 'post_modified','post_modified_gmt', 'comment_date', 'comment_date_gmt'. Default 'post_date'. - 'compare'
(string) Optional. The comparison operator. Accepts '=', '!=', '>', '>=', '<', '<=', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN'. Default '='. - 'relation'
(string) Optional. The boolean relationship between the date queries. Accepts 'OR' or 'AND'. Default 'OR'. - (array) Optional. An array of first-order clause parameters, or another fully-formed date query.
- 'before'
(string|array) Optional. Date to retrieve posts before. Acceptsstrtotime()
-compatible string, or array of 'year', 'month', 'day' values.- 'year'
(string) The four-digit year. Default empty. Accepts any four-digit year. - 'month'
(string) Optional when passing array.The month of the year. Default (string:empty)|(array:1). Accepts numbers 1-12. - 'day'
(string) Optional when passing array.The day of the month. Default (string:empty)|(array:1). Accepts numbers 1-31.
- 'year'
- 'after'
(string|array) Optional. Date to retrieve posts after. Acceptsstrtotime()
-compatible string, or array of 'year', 'month', 'day' values.- 'year'
(string) The four-digit year. Accepts any four-digit year. Default empty. - 'month'
(string) Optional when passing array. The month of the year. Accepts numbers 1-12. Default (string:empty)|(array:12). - 'day'
(string) Optional when passing array.The day of the month. Accepts numbers 1-31. Default (string:empty)|(array:last day of month).
- 'year'
- 'column'
(string) Optional. Used to add a clause comparing a column other than the column specified in the top-level$column
parameter. Accepts 'post_date', 'post_date_gmt', 'post_modified', 'post_modified_gmt', 'comment_date', 'comment_date_gmt'. Default is the value of top-level$column
. - 'compare'
(string) Optional. The comparison operator. Accepts '=', '!=', '>', '>=', '<', '<=', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN'. 'IN', 'NOT IN', 'BETWEEN', and 'NOT BETWEEN'. Comparisons support arrays in some time-related parameters. Default '='. - 'inclusive'
(bool) Optional. Include results from dates specified in 'before' or 'after'. Default false. - 'year'
(int|array) Optional. The four-digit year number. Accepts any four-digit year or an array of years if$compare
supports it. Default empty. - 'month'
(int|array) Optional. The two-digit month number. Accepts numbers 1-12 or an array of valid numbers if$compare
supports it. Default empty. - 'week'
(int|array) Optional. The week number of the year. Accepts numbers 0-53 or an array of valid numbers if$compare
supports it. Default empty. - 'dayofyear'
(int|array) Optional. The day number of the year. Accepts numbers 1-366 or an array of valid numbers if$compare
supports it. - 'day'
(int|array) Optional. The day of the month. Accepts numbers 1-31 or an array of valid numbers if$compare
supports it. Default empty. - 'dayofweek'
(int|array) Optional. The day number of the week. Accepts numbers 1-7 (1 is Sunday) or an array of valid numbers if$compare
supports it. Default empty. - 'dayofweek_iso'
(int|array) Optional. The day number of the week (ISO). Accepts numbers 1-7 (1 is Monday) or an array of valid numbers if$compare
supports it. Default empty. - 'hour'
(int|array) Optional. The hour of the day. Accepts numbers 0-23 or an array of valid numbers if$compare
supports it. Default empty. - 'minute'
(int|array) Optional. The minute of the hour. Accepts numbers 0-60 or an array of valid numbers if$compare
supports it. Default empty. - 'second'
(int|array) Optional. The second of the minute. Accepts numbers 0-60 or an array of valid numbers if$compare
supports it. Default empty. }
- 'before'
- 'column'
- (array)
- $default_column
-
(Optional) Default column to query against. Default 'post_date'. Accepts 'post_date', 'post_date_gmt', 'post_modified', 'post_modified_gmt', 'comment_date', 'comment_date_gmt'.
Default value: 'post_date'
Source
File: wp-includes/date.php
public function __construct( $date_query, $default_column = 'post_date' ) {
if ( isset( $date_query['relation'] ) && 'OR' === strtoupper( $date_query['relation'] ) ) {
$this->relation = 'OR';
} else {
$this->relation = 'AND';
}
if ( ! is_array( $date_query ) ) {
return;
}
// Support for passing time-based keys in the top level of the $date_query array.
if ( ! isset( $date_query[0] ) && ! empty( $date_query ) ) {
$date_query = array( $date_query );
}
if ( empty( $date_query ) ) {
return;
}
if ( ! empty( $date_query['column'] ) ) {
$date_query['column'] = esc_sql( $date_query['column'] );
} else {
$date_query['column'] = esc_sql( $default_column );
}
$this->column = $this->validate_column( $this->column );
$this->compare = $this->get_compare( $date_query );
$this->queries = $this->sanitize_query( $date_query );
}
Changelog
Version | Description |
---|---|
WP-4.1.0 | Introduced 'dayofweek_iso' time type parameter. |
WP-4.0.0 | The $inclusive logic was updated to include all times within the date range. |
WP-3.7.0 | Introduced. |