WP_Term_Query::parse_query( string|array $query =  )

In this article

Parse arguments passed to the term query with default query parameters.

Parameters

$querystring|arrayoptional
WP_Term_Query arguments. See WP_Term_Query::__construct() for accepted arguments.

Default:''

Source

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 '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

VersionDescription
4.6.0Introduced.

User Contributed Notes

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