WP_Term_Query::parse_query( string|array $query = '' )
Parse arguments passed to the term query with default query parameters.
Parameters
-
$query
string|array Optional -
WP_Term_Query arguments. See WP_Term_Query::__construct()
More Arguments from WP_Term_Query::__construct( ... $query )
Array or query string of term query parameters.
taxonomy
string|string[]Taxonomy name, or array of taxonomy names, to which results should be limited.object_ids
int|int[]Object ID, or array of object IDs. Results will be limited to terms associated with these objects.orderby
stringField(s) to order terms by. Accepts:
- Term fields (
'name'
,'slug'
,'term_group'
,'term_id'
,'id'
,'description'
,'parent'
,'term_order'
). Unless$object_ids
is not empty,'term_order'
is treated the same as'term_id'
. 'count'
to use the number of objects associated with the term.'include'
to match the'order'
of the$include
param.'slug__in'
to match the'order'
of the$slug
param.'meta_value'
'meta_value_num'
.- The value of
$meta_key
. - The array keys of
$meta_query
. 'none'
to omit the ORDER BY clause.
'name'
.- Term fields (
order
stringWhether to order terms in ascending or descending order.
Accepts'ASC'
(ascending) or'DESC'
(descending).
Default'ASC'
.hide_empty
bool|intWhether to hide terms not assigned to any posts. Accepts1|true
or0|false
. Default1|true
.include
int[]|stringArray or comma/space-separated string of term IDs to include.
Default empty array.exclude
int[]|stringArray or comma/space-separated string of term IDs to exclude.
If$include
is non-empty,$exclude
is ignored.
Default empty array.exclude_tree
int[]|stringArray or comma/space-separated string of term IDs to exclude along with all of their descendant terms. If$include
is non-empty,$exclude_tree
is ignored. Default empty array.number
int|stringMaximum number of terms to return. Accepts
(all) or any positive number. Default''
|0
(all). Note that''
|0$number
may not return accurate results when coupled with$object_ids
.
See #41796 for details.offset
intThe number by which to offset the terms query.fields
stringTerm fields to query for. Accepts:
'all'
Returns an array of complete term objects (WP_Term[]
).'all_with_object_id'
Returns an array of term objects with the'object_id'
param (WP_Term[]
). Works only when the$object_ids
parameter is populated.'ids'
Returns an array of term IDs (int[]
).'tt_ids'
Returns an array of term taxonomy IDs (int[]
).'names'
Returns an array of term names (string[]
).'slugs'
Returns an array of term slugs (string[]
).'count'
Returns the number of matching terms (int
).'id=>parent'
Returns an associative array of parent term IDs, keyed by term ID (int[]
).'id=>name'
Returns an associative array of term names, keyed by term ID (string[]
).'id=>slug'
Returns an associative array of term slugs, keyed by term ID (string[]
).
'all'
.count
boolWhether to return a term count. If true, will take precedence over$fields
. Default false.name
string|string[]Name or array of names to return term(s) for.
slug
string|string[]Slug or array of slugs to return term(s) for.
term_taxonomy_id
int|int[]Term taxonomy ID, or array of term taxonomy IDs, to match when querying terms.hierarchical
boolWhether to include terms that have non-empty descendants (even if$hide_empty
is set to true). Default true.search
stringSearch criteria to match terms. Will be SQL-formatted with wildcards before and after.name__like
stringRetrieve terms with criteria by which a term is LIKE$name__like
.description__like
stringRetrieve terms where the description is LIKE$description__like
.pad_counts
boolWhether to pad the quantity of a term's children in the quantity of each term's "count" object variable. Default false.get
stringWhether to return terms regardless of ancestry or whether the terms are empty. Accepts'all'
or''
(disabled). Default''
.child_of
intTerm ID to retrieve child terms of. If multiple taxonomies are passed,$child_of
is ignored. Default 0.parent
intParent term ID to retrieve direct-child terms of.
childless
boolTrue to limit results to terms that have no children.
This parameter has no effect on non-hierarchical taxonomies.
Default false.cache_domain
stringUnique cache key to be produced when this query is stored in an object cache. Default'core'
.cache_results
boolWhether to cache term information. Default true.update_term_meta_cache
boolWhether to prime meta caches for matched terms. Default true.meta_key
string|string[]Meta key or keys to filter by.meta_value
string|string[]Meta value or values to filter by.meta_compare
stringMySQL operator used for comparing the meta value.
See WP_Meta_Query::__construct() for accepted values and default value.meta_compare_key
stringMySQL operator used for comparing the meta key.
See WP_Meta_Query::__construct() for accepted values and default value.meta_type
stringMySQL data type that the meta_value column will be CAST to for comparisons.
See WP_Meta_Query::__construct() for accepted values and default value.meta_type_key
stringMySQL data type that the meta_key column will be CAST to for comparisons.
See WP_Meta_Query::__construct() for accepted values and default value.meta_query
arrayAn associative array of WP_Meta_Query arguments.
See WP_Meta_Query::__construct() for accepted values.
Default:
''
Source
File: wp-includes/class-wp-term-query.php
.
View all references
public function parse_query( $query = '' ) {
if ( empty( $query ) ) {
$query = $this->query_vars;
}
$taxonomies = isset( $query['taxonomy'] ) ? (array) $query['taxonomy'] : null;
/**
* Filters the terms query default arguments.
*
* Use {@see 'get_terms_args'} to filter the passed arguments.
*
* @since 4.4.0
*
* @param array $defaults An array of default get_terms() arguments.
* @param string[] $taxonomies An array of taxonomy names.
*/
$this->query_var_defaults = apply_filters( 'get_terms_defaults', $this->query_var_defaults, $taxonomies );
$query = wp_parse_args( $query, $this->query_var_defaults );
$query['number'] = absint( $query['number'] );
$query['offset'] = absint( $query['offset'] );
// 'parent' overrides 'child_of'.
if ( 0 < (int) $query['parent'] ) {
$query['child_of'] = false;
}
if ( 'all' === $query['get'] ) {
$query['childless'] = false;
$query['child_of'] = 0;
$query['hide_empty'] = 0;
$query['hierarchical'] = false;
$query['pad_counts'] = false;
}
$query['taxonomy'] = $taxonomies;
$this->query_vars = $query;
/**
* Fires after term query vars have been parsed.
*
* @since 4.6.0
*
* @param WP_Term_Query $query Current instance of WP_Term_Query.
*/
do_action( 'parse_term_query', $this );
}
Hooks
-
apply_filters( 'get_terms_defaults',
array $defaults ,string[] $taxonomies ) -
Filters the terms query default arguments.
-
do_action( 'parse_term_query',
WP_Term_Query $query ) -
Fires after term query vars have been parsed.
Changelog
Version | Description |
---|---|
4.6.0 | Introduced. |