render_block_core_site_title

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

WordPress Version: 6.2

/**
 * Server-side rendering of the `core/site-title` block.
 *
 * @package WordPress
 */
/**
 * Renders the `core/site-title` block on the server.
 *
 * @param array $attributes The block attributes.
 *
 * @return string The render.
 */
function render_block_core_site_title($attributes)
{
    $site_title = get_bloginfo('name');
    if (!$site_title) {
        return;
    }
    $tag_name = 'h1';
    $classes = empty($attributes['textAlign']) ? '' : "has-text-align-{$attributes['textAlign']}";
    if (isset($attributes['style']['elements']['link']['color']['text'])) {
        $classes .= ' has-link-color';
    }
    if (isset($attributes['level'])) {
        $tag_name = (0 === $attributes['level']) ? 'p' : ('h' . (int) $attributes['level']);
    }
    if ($attributes['isLink']) {
        $aria_current = (is_home() || is_front_page() && 'page' === get_option('show_on_front')) ? ' aria-current="page"' : '';
        $link_target = (!empty($attributes['linkTarget'])) ? $attributes['linkTarget'] : '_self';
        $site_title = sprintf('<a href="%1$s" target="%2$s" rel="home"%3$s>%4$s</a>', esc_url(home_url()), esc_attr($link_target), $aria_current, esc_html($site_title));
    }
    $wrapper_attributes = get_block_wrapper_attributes(array('class' => trim($classes)));
    return sprintf(
        '<%1$s %2$s>%3$s</%1$s>',
        $tag_name,
        $wrapper_attributes,
        // already pre-escaped if it is a link.
        $attributes['isLink'] ? $site_title : esc_html($site_title)
    );
}

WordPress Version: 6.1

/**
 * Server-side rendering of the `core/site-title` block.
 *
 * @package WordPress
 */
/**
 * Renders the `core/site-title` block on the server.
 *
 * @param array $attributes The block attributes.
 *
 * @return string The render.
 */
function render_block_core_site_title($attributes)
{
    $site_title = get_bloginfo('name');
    if (!$site_title) {
        return;
    }
    $tag_name = 'h1';
    $align_class_name = empty($attributes['textAlign']) ? '' : "has-text-align-{$attributes['textAlign']}";
    if (isset($attributes['level'])) {
        $tag_name = (0 === $attributes['level']) ? 'p' : ('h' . (int) $attributes['level']);
    }
    if ($attributes['isLink']) {
        $aria_current = (is_home() || is_front_page() && 'page' === get_option('show_on_front')) ? ' aria-current="page"' : '';
        $link_target = (!empty($attributes['linkTarget'])) ? $attributes['linkTarget'] : '_self';
        $site_title = sprintf('<a href="%1$s" target="%2$s" rel="home"%3$s>%4$s</a>', esc_url(home_url()), esc_attr($link_target), $aria_current, esc_html($site_title));
    }
    $wrapper_attributes = get_block_wrapper_attributes(array('class' => $align_class_name));
    return sprintf(
        '<%1$s %2$s>%3$s</%1$s>',
        $tag_name,
        $wrapper_attributes,
        // already pre-escaped if it is a link.
        $attributes['isLink'] ? $site_title : esc_html($site_title)
    );
}

WordPress Version: 9.1

/**
 * Server-side rendering of the `core/site-title` block.
 *
 * @package WordPress
 */
/**
 * Renders the `core/site-title` block on the server.
 *
 * @param array $attributes The block attributes.
 *
 * @return string The render.
 */
function render_block_core_site_title($attributes)
{
    $site_title = get_bloginfo('name');
    if (!$site_title) {
        return;
    }
    $tag_name = 'h1';
    $align_class_name = empty($attributes['textAlign']) ? '' : "has-text-align-{$attributes['textAlign']}";
    $aria_current = (is_home() || is_front_page() && 'page' === get_option('show_on_front')) ? ' aria-current="page"' : '';
    if (isset($attributes['level'])) {
        $tag_name = (0 === $attributes['level']) ? 'p' : ('h' . $attributes['level']);
    }
    if ($attributes['isLink']) {
        $link_attrs = array('href="' . get_bloginfo('url') . '"', 'rel="home"', $aria_current);
        if ('_blank' === $attributes['linkTarget']) {
            $link_attrs[] = 'target="_blank"';
        }
        $site_title = sprintf('<a %1$s>%2$s</a>', implode(' ', $link_attrs), $site_title);
    }
    $wrapper_attributes = get_block_wrapper_attributes(array('class' => $align_class_name));
    return sprintf('<%1$s %2$s>%3$s</%1$s>', $tag_name, $wrapper_attributes, $site_title);
}

WordPress Version: 5.9

/**
 * Server-side rendering of the `core/site-title` block.
 *
 * @package WordPress
 */
/**
 * Renders the `core/site-title` block on the server.
 *
 * @param array $attributes The block attributes.
 *
 * @return string The render.
 */
function render_block_core_site_title($attributes)
{
    $site_title = get_bloginfo('name');
    if (!$site_title) {
        return;
    }
    $tag_name = 'h1';
    $align_class_name = empty($attributes['textAlign']) ? '' : "has-text-align-{$attributes['textAlign']}";
    $aria_current = (is_home() || is_front_page() && 'page' === get_option('show_on_front')) ? ' aria-current="page"' : '';
    if (isset($attributes['level'])) {
        $tag_name = (0 === $attributes['level']) ? 'p' : ('h' . $attributes['level']);
    }
    if ($attributes['isLink']) {
        $link_attrs = array('href="' . get_bloginfo('url') . '"', 'rel="home"', $aria_current);
        if ('_blank' === $attributes['linkTarget']) {
            $link_attrs[] = 'target="_blank"';
            $link_attrs[] = 'aria-label="' . esc_attr__('(opens in a new tab)') . '"';
        }
        $site_title = sprintf('<a %1$s>%2$s</a>', implode(' ', $link_attrs), $site_title);
    }
    $wrapper_attributes = get_block_wrapper_attributes(array('class' => $align_class_name));
    return sprintf('<%1$s %2$s>%3$s</%1$s>', $tag_name, $wrapper_attributes, $site_title);
}

WordPress Version: 5.8

/**
 * Server-side rendering of the `core/site-title` block.
 *
 * @package WordPress
 */
/**
 * Renders the `core/site-title` block on the server.
 *
 * @param array $attributes The block attributes.
 *
 * @return string The render.
 */
function render_block_core_site_title($attributes)
{
    $site_title = get_bloginfo('name');
    if (!$site_title) {
        return;
    }
    $tag_name = 'h1';
    $align_class_name = empty($attributes['textAlign']) ? '' : "has-text-align-{$attributes['textAlign']}";
    if (isset($attributes['level'])) {
        $tag_name = (0 === $attributes['level']) ? 'p' : ('h' . $attributes['level']);
    }
    $link = sprintf('<a href="%1$s" rel="home">%2$s</a>', get_bloginfo('url'), $site_title);
    $wrapper_attributes = get_block_wrapper_attributes(array('class' => $align_class_name));
    return sprintf('<%1$s %2$s>%3$s</%1$s>', $tag_name, $wrapper_attributes, $link);
}