is_single( int|string|array $post = '' )

Determines whether the query is for an existing single post.


Description Description

Works for any post type, except attachments and pages

If the $post parameter is specified, this function will additionally check if the query is for one of the Posts specified.

For more information on this and similar theme functions, check out the Conditional Tags article in the Theme Developer Handbook.

See also See also


Top ↑

Parameters Parameters

$post

(int|string|array) (Optional) Post ID, title, slug, or array of such.

Default value: ''


Top ↑

Return Return

(bool) Whether the query is for an existing single post.


Top ↑

Source Source

File: wp-includes/query.php

function is_single( $post = '' ) {
	global $wp_query;

	if ( ! isset( $wp_query ) ) {
		_doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1.0' );
		return false;
	}

	return $wp_query->is_single( $post );
}

Top ↑

Changelog Changelog

Changelog
Version Description
1.5.0 Introduced.

Top ↑

More Information More Information

  • See Also: is_singular()
  • Although is_single() will usually return true for attachments, this behavior should not be relied upon. It is possible for $is_page and $is_attachment to be true at the same time, and in that case $is_single will be false. For this reason, you should use is_attachment() || is_single() if you want to include attachments, or use is_singular() if you want to include pages too.


Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note 1 content
    Contributed by Codex
    is_single();
    // When any single Post page is being displayed.
    
    is_single('17');
    // When Post 17 (ID) is being displayed.
    
    is_single(17);
    // When Post 17 (ID) is being displayed. Integer parameter also works
    is_single('Irish Stew');
    // When the Post with post_title of "Irish Stew" is being displayed.
    
    is_single('beef-stew');
    // When the Post with post_name (slug) of "beef-stew" is being displayed.
    
    is_single(array(17,'beef-stew','Irish Stew'));
    // Returns true when the single post being displayed is either post ID 17,
    // or the post_name is "beef-stew", or the post_title is "Irish Stew".
    // Note: the array ability was added in version 2.5.
    

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