VOOZH about

URL: https://developer.wordpress.org/reference/functions/is_single/

⇱ is_single() – Function | Developer.WordPress.org


Skip to content

WordPress Developer Resources

is_single()

is_single( int|string|int[]|string[] $post = '' ): bool

Determines whether the query is for an existing single post.

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

Parameters

$postint|string|int[]|string[]optional
Post ID, title, slug, or array of such to check against.

Default:''

Return

bool Whether the query is for an existing single post.

More Information

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

Source

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 );
}

View all references View on Trac View on GitHub

Related

UsesDescription
WP_Query::is_single()wp-includes/class-wp-query.php

Determines whether the query is for an existing single post.

__()wp-includes/l10n.php

Retrieves the translation of $text.

_doing_it_wrong()wp-includes/functions.php

Marks something as being incorrectly called.

Show 1 moreShow less
Used byDescription
wp_title()wp-includes/general-template.php

Displays or retrieves page title for all areas of blog.

get_next_posts_page_link()wp-includes/link-template.php

Retrieves the next posts page link.

get_next_posts_link()wp-includes/link-template.php

Retrieves the next posts page link.

get_previous_posts_page_link()wp-includes/link-template.php

Retrieves the previous posts page link.

get_previous_posts_link()wp-includes/link-template.php

Retrieves the previous posts page link.

adjacent_posts_rel_link_wp_head()wp-includes/link-template.php

Displays relational links for the posts adjacent to the current post for single post pages.

get_boundary_post()wp-includes/link-template.php

Retrieves the boundary post.

get_body_class()wp-includes/post-template.php

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

redirect_canonical()wp-includes/canonical.php

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

comments_template()wp-includes/comment-template.php

Loads the comment template specified in $file.

Show 5 moreShow less

Changelog

VersionDescription
1.5.0Introduced.

User Contributed Notes

  1. Skip to note 5 content
    // Run code only for Single post page
    if ( is_single() && 'post' == get_post_type() ) {
     
    }
    
    //if it's not a specific post-type
    if ( is_single() && 'portfolio' != get_post_type() ) {
     
    }
  2. Skip to note 6 content
    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.
  3. Skip to note 7 content

    This is to demonstrate different kinds of Single

    if ( is_single() ) {
     // Run code only for Single post-type 'post'
    }
    
    if ( is_page() ) {
     // Run code only for Single post-type 'page'
    }
    
    
    if ( is_singular() ) {
     // Run code for any Singular post of any post type 
    }
  4. Skip to note 8 content

    Enqueue a CSS stylesheet for any single Post page

    if ( is_single() ) {
     // wp_enqueue_style( string $handle, string $src = '', array $deps = array(), string|bool|null $ver = false, string $media = 'all' )
    }

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