Display or retrieve page title for post.

This is optimized for single.php template file for displaying the post title.

It does not support placing the separator after the title, but by leaving the prefix parameter empty, you can set the title separator manually. The prefix does not automatically place a space between the prefix, so if there should be a space, the parameter value will need to have it at the end.


single_post_title( $prefix = '', $display = true )
 (string) Optional. What to display before the title.
Default: ''
 (boolean) Optional, default is true. Whether to display or retrieve title.
Default: true


(string|void) Title when retrieving.


function single_post_title( $prefix = '', $display = true ) {
	$_post = get_queried_object();

	if ( !isset($_post->post_title) )

	 * Filters the page title for a single post.
	 * @since 0.71
	 * @param string $_post_title The single post page title.
	 * @param object $_post       The current queried object as returned by get_queried_object().
	$title = apply_filters( 'single_post_title', $_post->post_title, $_post );
	if ( $display )
		echo $prefix . $title;
		return $prefix . $title;
WP Trac GitHub

Link here