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.

Signature

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

Return

(string|null) Title when retrieving, null when displaying or failure.

Source

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

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

	/**
	 * Filter 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;
	else
		return $prefix . $title;
}
WP Trac GitHub

Link here