is_main_query()

Is the query the main query?


Description Description


Return Return

(bool)


Top ↑

Source Source

File: wp-includes/query.php

function is_main_query() {
	if ( 'pre_get_posts' === current_filter() ) {
		$message = sprintf(
			/* translators: 1: pre_get_posts 2: WP_Query->is_main_query() 3: is_main_query() 4: link to codex is_main_query() page. */
			__( 'In %1$s, use the %2$s method, not the %3$s function. See %4$s.' ),
			'<code>pre_get_posts</code>',
			'<code>WP_Query->is_main_query()</code>',
			'<code>is_main_query()</code>',
			__( 'https://codex.wordpress.org/Function_Reference/is_main_query' )
		);
		_doing_it_wrong( __FUNCTION__, $message, '3.7.0' );
	}

	global $wp_query;
	return $wp_query->is_main_query();
}

Top ↑

Changelog Changelog

Changelog
Version Description
3.3.0 Introduced.


Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note content
    Contributed by Codex

    Example of using WP_Query->is_main_query() instead of is_main_query() (invalid)

    /**
     * If the global query is for a category, exclude category 5.
     *
     * @param WP_Query $query Global WP_Query instance.
     */
    function wpdocs_modify_query_exclude_category( $query ) {
        if ( ! is_admin() && $query->is_main_query() && ! $query->get( 'cat' ) )
            $query->set( 'cat', '-5' );
    }
    add_action( 'pre_get_posts', 'wpdocs_modify_query_exclude_category' );
    

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