WP_REST_Revisions_Controller::prepare_items_query( array $prepared_args = array(), WP_REST_Request $request = null ): array

In this article

Determines the allowed query_vars for a get_items() response and prepares them for WP_Query.

Parameters

$prepared_argsarrayoptional
Prepared WP_Query arguments.

Default:array()

$requestWP_REST_Requestoptional
Full details about the request.

Default:null

Return

array Items query arguments.

Source

protected function prepare_items_query( $prepared_args = array(), $request = null ) {
	$query_args = array();

	foreach ( $prepared_args as $key => $value ) {
		/** This filter is documented in wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php */
		$query_args[ $key ] = apply_filters( "rest_query_var-{$key}", $value ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
	}

	// Map to proper WP_Query orderby param.
	if ( isset( $query_args['orderby'] ) && isset( $request['orderby'] ) ) {
		$orderby_mappings = array(
			'id'            => 'ID',
			'include'       => 'post__in',
			'slug'          => 'post_name',
			'include_slugs' => 'post_name__in',
		);

		if ( isset( $orderby_mappings[ $request['orderby'] ] ) ) {
			$query_args['orderby'] = $orderby_mappings[ $request['orderby'] ];
		}
	}

	return $query_args;
}

Hooks

apply_filters( “rest_query_var-{$key}”, string $value )

Filters the query_vars used in get_items() for the constructed query.

Changelog

VersionDescription
5.0.0Introduced.

User Contributed Notes

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