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
is_page()
is_singular()
Parameters
$post
int|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.
Source
File: wp-includes/query.php.
View all references
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 );
}
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.