apply_filters( 'request', array $query_vars )

Filters the array of parsed query variables.


Parameters Parameters

$query_vars

(array) The array of requested query variables.


Top ↑

More Information More Information

  • This filter is applied to the query variables that are passed to the default main SQL query that drives your page’s content. It is applied after additional private query variables have been added in, and is one of the places you can hook into to modify the query that will generate your list of posts (or pages) before the main query is executed and the database is actually accessed.
  • Use this hook within functions.php as an alternative way to alter the posts returned in your Main Loop (as an alternate to query_posts()). The advantage of using this filter is that it alters the SQL query before it is executed, reducing the number of database calls.
  • While it probably goes without saying, attempts to use this hook from within a template php page will not do anything, as the main query will have already executed at that point.
  • As Rarst mentions, this filter affects all default queries, including calls to the admin Dashboard. You must be extremely careful and test thoroughly to ensure that no other parts of the site break when you modify the query string.

Top ↑

Source Source

File: wp-includes/class-wp.php

View on Trac



Top ↑

Changelog Changelog

Changelog
Version Description
2.1.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note 1 content
    Contributed by stevenlinx

    Example migrated from Codex:

    Example usage by scribu (reproduced with permission from wordpress.stackexchange.com):

    add_filter( 'request', 'alter_the_query' );
    
    function alter_the_query( $request ) {
        $dummy_query = new WP_Query();  // the query isn't run if we don't pass any query vars
        $dummy_query->parse_query( $request );
    
        // this is the actual manipulation; do whatever you need here
        if ( $dummy_query->is_home() )
            $request['category_name'] = 'news';
    
        return $request;
    }
    

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