single_post_title

The timeline below displays how wordpress function single_post_title has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.1

/**
 * Displays or retrieves 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.
 *
 * @since 0.71
 *
 * @param string $prefix  Optional. What to display before the title.
 * @param bool   $display Optional. Whether to display or retrieve title. Default true.
 * @return string|void Title when retrieving.
 */
function single_post_title($prefix = '', $display = true)
{
    $_post = get_queried_object();
    if (!isset($_post->post_title)) {
        return;
    }
    /**
     * Filters the page title for a single post.
     *
     * @since 0.71
     *
     * @param string  $_post_title The single post page title.
     * @param WP_Post $_post       The current post.
     */
    $title = apply_filters('single_post_title', $_post->post_title, $_post);
    if ($display) {
        echo $prefix . $title;
    } else {
        return $prefix . $title;
    }
}

WordPress Version: 5.5

/**
 * 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.
 *
 * @since 0.71
 *
 * @param string $prefix  Optional. What to display before the title.
 * @param bool   $display Optional. Whether to display or retrieve title. Default true.
 * @return string|void Title when retrieving.
 */
function single_post_title($prefix = '', $display = true)
{
    $_post = get_queried_object();
    if (!isset($_post->post_title)) {
        return;
    }
    /**
     * Filters the page title for a single post.
     *
     * @since 0.71
     *
     * @param string  $_post_title The single post page title.
     * @param WP_Post $_post       The current post.
     */
    $title = apply_filters('single_post_title', $_post->post_title, $_post);
    if ($display) {
        echo $prefix . $title;
    } else {
        return $prefix . $title;
    }
}

WordPress Version: 5.4

/**
 * 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.
 *
 * @since 0.71
 *
 * @param string $prefix  Optional. What to display before the title.
 * @param bool   $display Optional, default is true. Whether to display or retrieve title.
 * @return string|void Title when retrieving.
 */
function single_post_title($prefix = '', $display = true)
{
    $_post = get_queried_object();
    if (!isset($_post->post_title)) {
        return;
    }
    /**
     * Filters the page title for a single post.
     *
     * @since 0.71
     *
     * @param string  $_post_title The single post page title.
     * @param WP_Post $_post       The current post.
     */
    $title = apply_filters('single_post_title', $_post->post_title, $_post);
    if ($display) {
        echo $prefix . $title;
    } else {
        return $prefix . $title;
    }
}

WordPress Version: 4.6

/**
 * 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.
 *
 * @since 0.71
 *
 * @param string $prefix  Optional. What to display before the title.
 * @param bool   $display Optional, default is true. Whether to display or retrieve title.
 * @return string|void Title when retrieving.
 */
function single_post_title($prefix = '', $display = true)
{
    $_post = get_queried_object();
    if (!isset($_post->post_title)) {
        return;
    }
    /**
     * 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;
    } else {
        return $prefix . $title;
    }
}

WordPress Version: 4.3

/**
 * 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.
 *
 * @since 0.71
 *
 * @param string $prefix  Optional. What to display before the title.
 * @param bool   $display Optional, default is true. Whether to display or retrieve title.
 * @return string|void Title when retrieving.
 */
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;
    }
}

WordPress Version: 3.9

/**
 * 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.
 *
 * @since 0.71
 *
 * @param string $prefix Optional. What to display before the title.
 * @param bool $display Optional, default is true. Whether to display or retrieve title.
 * @return string|null Title when retrieving, null when displaying or failure.
 */
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;
    }
}

WordPress Version: 3.7

/**
 * 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.
 *
 * @since 0.71
 *
 * @param string $prefix Optional. What to display before the title.
 * @param bool $display Optional, default is true. Whether to display or retrieve title.
 * @return string|null Title when retrieving, null when displaying or failure.
 */
function single_post_title($prefix = '', $display = true)
{
    $_post = get_queried_object();
    if (!isset($_post->post_title)) {
        return;
    }
    $title = apply_filters('single_post_title', $_post->post_title, $_post);
    if ($display) {
        echo $prefix . $title;
    } else {
        return $prefix . $title;
    }
}