Title: WP_Query::get_queried_object
Published: April 25, 2014
Last modified: August 20, 2026

---

# WP_Query::get_queried_object(): 󠀁[WP_Term](https://developer.wordpress.org/reference/classes/wp_term/)󠁿|󠀁[WP_Post_Type](https://developer.wordpress.org/reference/classes/wp_post_type/)󠁿|󠀁[WP_Post](https://developer.wordpress.org/reference/classes/wp_post/)󠁿|󠀁[WP_User](https://developer.wordpress.org/reference/classes/wp_user/)󠁿|null

## In this article

 * [Description](https://developer.wordpress.org/reference/classes/wp_query/get_queried_object/?output_format=md#description)
 * [Return](https://developer.wordpress.org/reference/classes/wp_query/get_queried_object/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/classes/wp_query/get_queried_object/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/classes/wp_query/get_queried_object/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/classes/wp_query/get_queried_object/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/classes/wp_query/get_queried_object/?output_format=md#wp--skip-link--target)

Retrieves the currently queried object.

## 󠀁[Description](https://developer.wordpress.org/reference/classes/wp_query/get_queried_object/?output_format=md#description)󠁿

If queried object is not set, then the queried object will be set from the category,
tag, taxonomy, posts page, single post, page, or author query variable. After it
is set up, it will be returned.

## 󠀁[Return](https://developer.wordpress.org/reference/classes/wp_query/get_queried_object/?output_format=md#return)󠁿

 [WP_Term](https://developer.wordpress.org/reference/classes/wp_term/)|[WP_Post_Type](https://developer.wordpress.org/reference/classes/wp_post_type/)
|[WP_Post](https://developer.wordpress.org/reference/classes/wp_post/)|[WP_User](https://developer.wordpress.org/reference/classes/wp_user/)
|null The queried object.

## 󠀁[Source](https://developer.wordpress.org/reference/classes/wp_query/get_queried_object/?output_format=md#source)󠁿

    ```php
    public function get_queried_object() {
    	if ( isset( $this->queried_object ) ) {
    		return $this->queried_object;
    	}

    	$this->queried_object    = null;
    	$this->queried_object_id = null;

    	if ( $this->is_category || $this->is_tag || $this->is_tax ) {
    		if ( $this->is_category ) {
    			$cat           = $this->get( 'cat' );
    			$category_name = $this->get( 'category_name' );

    			if ( $cat ) {
    				$term = get_term( $cat, 'category' );
    			} elseif ( $category_name ) {
    				$term = get_term_by( 'slug', $category_name, 'category' );
    			}
    		} elseif ( $this->is_tag ) {
    			$tag_id = $this->get( 'tag_id' );
    			$tag    = $this->get( 'tag' );

    			if ( $tag_id ) {
    				$term = get_term( $tag_id, 'post_tag' );
    			} elseif ( $tag ) {
    				$term = get_term_by( 'slug', $tag, 'post_tag' );
    			}
    		} else {
    			// For other tax queries, grab the first term from the first clause.
    			if ( ! empty( $this->tax_query->queried_terms ) ) {
    				$queried_taxonomies = array_keys( $this->tax_query->queried_terms );
    				$matched_taxonomy   = reset( $queried_taxonomies );
    				$query              = $this->tax_query->queried_terms[ $matched_taxonomy ];

    				if ( ! empty( $query['terms'] ) ) {
    					if ( 'term_id' === $query['field'] ) {
    						$term = get_term( reset( $query['terms'] ), $matched_taxonomy );
    					} else {
    						$term = get_term_by( $query['field'], reset( $query['terms'] ), $matched_taxonomy );
    					}
    				}
    			}
    		}

    		if ( ! empty( $term ) && ! is_wp_error( $term ) ) {
    			$this->queried_object    = $term;
    			$this->queried_object_id = (int) $term->term_id;

    			if ( $this->is_category && 'category' === $this->queried_object->taxonomy ) {
    				_make_cat_compat( $this->queried_object );
    			}
    		}
    	} elseif ( $this->is_post_type_archive ) {
    		$post_type = $this->get( 'post_type' );
    		if ( is_array( $post_type ) ) {
    			$post_type = reset( $post_type );
    		}

    		$this->queried_object = get_post_type_object( $post_type );
    	} elseif ( $this->is_posts_page ) {
    		$posts_page = get_post( get_option( 'page_for_posts' ) );
    		if ( $posts_page ) {
    			$this->queried_object    = $posts_page;
    			$this->queried_object_id = (int) $posts_page->ID;
    		}
    	} elseif ( $this->is_singular && ! empty( $this->post ) ) {
    		$this->queried_object    = $this->post;
    		$this->queried_object_id = (int) $this->post->ID;
    	} elseif ( $this->is_author ) {
    		$author      = (int) $this->get( 'author' );
    		$author_name = $this->get( 'author_name' );

    		if ( $author ) {
    			$this->queried_object_id = $author;
    		} elseif ( $author_name ) {
    			$user = get_user_by( 'slug', $author_name );
    			if ( $user ) {
    				$this->queried_object_id = $user->ID;
    			}
    		}

    		if ( $this->queried_object_id ) {
    			$user = get_userdata( $this->queried_object_id );
    			if ( $user ) {
    				$this->queried_object = $user;
    			}
    		}
    	}

    	return $this->queried_object;
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/class-wp-query.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/7.1/src/wp-includes/class-wp-query.php#L3988)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/class-wp-query.php#L3988-L4078)

## 󠀁[Related](https://developer.wordpress.org/reference/classes/wp_query/get_queried_object/?output_format=md#related)󠁿

| Uses | Description | 
| [get_user_by()](https://developer.wordpress.org/reference/functions/get_user_by/)`wp-includes/pluggable.php` |

Retrieves user info by a given field.

  | 
| [WP_Query::get()](https://developer.wordpress.org/reference/classes/wp_query/get/)`wp-includes/class-wp-query.php` |

Retrieves the value of a query variable.

  | 
| [_make_cat_compat()](https://developer.wordpress.org/reference/functions/_make_cat_compat/)`wp-includes/category.php` |

Updates category structure to old pre-2.3 from new taxonomy structure.

  | 
| [get_term_by()](https://developer.wordpress.org/reference/functions/get_term_by/)`wp-includes/taxonomy.php` |

Gets all term data from database by term field and data.

  | 
| [get_userdata()](https://developer.wordpress.org/reference/functions/get_userdata/)`wp-includes/pluggable.php` |

Retrieves user info by user ID.

  | 
| [get_term()](https://developer.wordpress.org/reference/functions/get_term/)`wp-includes/taxonomy.php` |

Gets all term data from database by term ID.

  | 
| [get_option()](https://developer.wordpress.org/reference/functions/get_option/)`wp-includes/option.php` |

Retrieves an option value based on an option name.

  | 
| [get_post_type_object()](https://developer.wordpress.org/reference/functions/get_post_type_object/)`wp-includes/post.php` |

Retrieves a post type object by name.

  | 
| [get_post()](https://developer.wordpress.org/reference/functions/get_post/)`wp-includes/post.php` |

Retrieves post data given a post ID or post object.

  | 
| [is_wp_error()](https://developer.wordpress.org/reference/functions/is_wp_error/)`wp-includes/load.php` |

Checks whether the given variable is a WordPress Error.

  |

[Show 6 more](https://developer.wordpress.org/reference/classes/wp_query/get_queried_object/?output_format=md#)
[Show less](https://developer.wordpress.org/reference/classes/wp_query/get_queried_object/?output_format=md#)

| Used by | Description | 
| [WP_Query::is_page()](https://developer.wordpress.org/reference/classes/wp_query/is_page/)`wp-includes/class-wp-query.php` |

Determines whether the query is for an existing single page.

  | 
| [WP_Query::is_single()](https://developer.wordpress.org/reference/classes/wp_query/is_single/)`wp-includes/class-wp-query.php` |

Determines whether the query is for an existing single post.

  | 
| [WP_Query::is_singular()](https://developer.wordpress.org/reference/classes/wp_query/is_singular/)`wp-includes/class-wp-query.php` |

Determines whether the query is for an existing single post of any post type (post, attachment, page, custom post types).

  | 
| [WP_Query::get_queried_object_id()](https://developer.wordpress.org/reference/classes/wp_query/get_queried_object_id/)`wp-includes/class-wp-query.php` |

Retrieves the ID of the currently queried object.

  | 
| [WP_Query::is_attachment()](https://developer.wordpress.org/reference/classes/wp_query/is_attachment/)`wp-includes/class-wp-query.php` |

Determines whether the query is for an existing attachment page.

  | 
| [WP_Query::is_author()](https://developer.wordpress.org/reference/classes/wp_query/is_author/)`wp-includes/class-wp-query.php` |

Determines whether the query is for an existing author archive page.

  | 
| [WP_Query::is_category()](https://developer.wordpress.org/reference/classes/wp_query/is_category/)`wp-includes/class-wp-query.php` |

Determines whether the query is for an existing category archive page.

  | 
| [WP_Query::is_tag()](https://developer.wordpress.org/reference/classes/wp_query/is_tag/)`wp-includes/class-wp-query.php` |

Determines whether the query is for an existing tag archive page.

  | 
| [WP_Query::is_tax()](https://developer.wordpress.org/reference/classes/wp_query/is_tax/)`wp-includes/class-wp-query.php` |

Determines whether the query is for an existing custom taxonomy archive page.

  | 
| [get_queried_object()](https://developer.wordpress.org/reference/functions/get_queried_object/)`wp-includes/query.php` |

Retrieves the currently queried object.

  | 
| [_wp_menu_item_classes_by_context()](https://developer.wordpress.org/reference/functions/_wp_menu_item_classes_by_context/)`wp-includes/nav-menu-template.php` |

Adds the class property classes for the current context, if applicable.

  | 
| [get_body_class()](https://developer.wordpress.org/reference/functions/get_body_class/)`wp-includes/post-template.php` |

Retrieves an array of the class names for the body element.

  | 
| [redirect_canonical()](https://developer.wordpress.org/reference/functions/redirect_canonical/)`wp-includes/canonical.php` |

Redirects incoming links to the proper URL based on the site url.

  |

[Show 8 more](https://developer.wordpress.org/reference/classes/wp_query/get_queried_object/?output_format=md#)
[Show less](https://developer.wordpress.org/reference/classes/wp_query/get_queried_object/?output_format=md#)

## 󠀁[Changelog](https://developer.wordpress.org/reference/classes/wp_query/get_queried_object/?output_format=md#changelog)󠁿

| Version | Description | 
| [1.5.0](https://developer.wordpress.org/reference/since/1.5.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Fwp_query%2Fget_queried_object%2F)
before being able to contribute a note or feedback.