get_site_icon_url

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

WordPress Version: 6.3

/**
 * Returns the Site Icon URL.
 *
 * @since 4.3.0
 *
 * @param int    $size    Optional. Size of the site icon. Default 512 (pixels).
 * @param string $url     Optional. Fallback url if no site icon is found. Default empty.
 * @param int    $blog_id Optional. ID of the blog to get the site icon for. Default current blog.
 * @return string Site Icon URL.
 */
function get_site_icon_url($size = 512, $url = '', $blog_id = 0)
{
    $switched_blog = false;
    if (is_multisite() && !empty($blog_id) && get_current_blog_id() !== (int) $blog_id) {
        switch_to_blog($blog_id);
        $switched_blog = true;
    }
    $site_icon_id = (int) get_option('site_icon');
    if ($site_icon_id) {
        if ($size >= 512) {
            $size_data = 'full';
        } else {
            $size_data = array($size, $size);
        }
        $url = wp_get_attachment_image_url($site_icon_id, $size_data);
    }
    if ($switched_blog) {
        restore_current_blog();
    }
    /**
     * Filters the site icon URL.
     *
     * @since 4.4.0
     *
     * @param string $url     Site icon URL.
     * @param int    $size    Size of the site icon.
     * @param int    $blog_id ID of the blog to get the site icon for.
     */
    return apply_filters('get_site_icon_url', $url, $size, $blog_id);
}

WordPress Version: 5.4

/**
 * Returns the Site Icon URL.
 *
 * @since 4.3.0
 *
 * @param int    $size    Optional. Size of the site icon. Default 512 (pixels).
 * @param string $url     Optional. Fallback url if no site icon is found. Default empty.
 * @param int    $blog_id Optional. ID of the blog to get the site icon for. Default current blog.
 * @return string Site Icon URL.
 */
function get_site_icon_url($size = 512, $url = '', $blog_id = 0)
{
    $switched_blog = false;
    if (is_multisite() && !empty($blog_id) && get_current_blog_id() !== (int) $blog_id) {
        switch_to_blog($blog_id);
        $switched_blog = true;
    }
    $site_icon_id = get_option('site_icon');
    if ($site_icon_id) {
        if ($size >= 512) {
            $size_data = 'full';
        } else {
            $size_data = array($size, $size);
        }
        $url = wp_get_attachment_image_url($site_icon_id, $size_data);
    }
    if ($switched_blog) {
        restore_current_blog();
    }
    /**
     * Filters the site icon URL.
     *
     * @since 4.4.0
     *
     * @param string $url     Site icon URL.
     * @param int    $size    Size of the site icon.
     * @param int    $blog_id ID of the blog to get the site icon for.
     */
    return apply_filters('get_site_icon_url', $url, $size, $blog_id);
}

WordPress Version: 4.8

/**
 * Returns the Site Icon URL.
 *
 * @since 4.3.0
 *
 * @param int    $size    Optional. Size of the site icon. Default 512 (pixels).
 * @param string $url     Optional. Fallback url if no site icon is found. Default empty.
 * @param int    $blog_id Optional. ID of the blog to get the site icon for. Default current blog.
 * @return string Site Icon URL.
 */
function get_site_icon_url($size = 512, $url = '', $blog_id = 0)
{
    $switched_blog = false;
    if (is_multisite() && !empty($blog_id) && (int) $blog_id !== get_current_blog_id()) {
        switch_to_blog($blog_id);
        $switched_blog = true;
    }
    $site_icon_id = get_option('site_icon');
    if ($site_icon_id) {
        if ($size >= 512) {
            $size_data = 'full';
        } else {
            $size_data = array($size, $size);
        }
        $url = wp_get_attachment_image_url($site_icon_id, $size_data);
    }
    if ($switched_blog) {
        restore_current_blog();
    }
    /**
     * Filters the site icon URL.
     *
     * @since 4.4.0
     *
     * @param string $url     Site icon URL.
     * @param int    $size    Size of the site icon.
     * @param int    $blog_id ID of the blog to get the site icon for.
     */
    return apply_filters('get_site_icon_url', $url, $size, $blog_id);
}

WordPress Version: 4.7

/**
 * Returns the Site Icon URL.
 *
 * @since 4.3.0
 *
 * @param int    $size    Optional. Size of the site icon. Default 512 (pixels).
 * @param string $url     Optional. Fallback url if no site icon is found. Default empty.
 * @param int    $blog_id Optional. ID of the blog to get the site icon for. Default current blog.
 * @return string Site Icon URL.
 */
function get_site_icon_url($size = 512, $url = '', $blog_id = 0)
{
    $switched_blog = false;
    if (is_multisite() && !empty($blog_id) && (int) $blog_id !== get_current_blog_id()) {
        switch_to_blog($blog_id);
        $switched_blog = true;
    }
    $site_icon_id = get_option('site_icon');
    if ($site_icon_id) {
        if ($size >= 512) {
            $size_data = 'full';
        } else {
            $size_data = array($size, $size);
        }
        $url = wp_get_attachment_image_url($site_icon_id, $size_data);
    }
    if ($switched_blog) {
        restore_current_blog();
    }
    /**
     * Filters the site icon URL.
     *
     * @site 4.4.0
     *
     * @param string $url     Site icon URL.
     * @param int    $size    Size of the site icon.
     * @param int    $blog_id ID of the blog to get the site icon for.
     */
    return apply_filters('get_site_icon_url', $url, $size, $blog_id);
}

WordPress Version: 4.6

/**
 * Returns the Site Icon URL.
 *
 * @since 4.3.0
 *
 * @param int    $size    Optional. Size of the site icon. Default 512 (pixels).
 * @param string $url     Optional. Fallback url if no site icon is found. Default empty.
 * @param int    $blog_id Optional. ID of the blog to get the site icon for. Default current blog.
 * @return string Site Icon URL.
 */
function get_site_icon_url($size = 512, $url = '', $blog_id = 0)
{
    if (is_multisite() && (int) $blog_id !== get_current_blog_id()) {
        switch_to_blog($blog_id);
    }
    $site_icon_id = get_option('site_icon');
    if ($site_icon_id) {
        if ($size >= 512) {
            $size_data = 'full';
        } else {
            $size_data = array($size, $size);
        }
        $url = wp_get_attachment_image_url($site_icon_id, $size_data);
    }
    if (is_multisite() && ms_is_switched()) {
        restore_current_blog();
    }
    /**
     * Filters the site icon URL.
     *
     * @site 4.4.0
     *
     * @param string $url     Site icon URL.
     * @param int    $size    Size of the site icon.
     * @param int    $blog_id ID of the blog to get the site icon for.
     */
    return apply_filters('get_site_icon_url', $url, $size, $blog_id);
}

WordPress Version: 4.4

/**
 * Returns the Site Icon URL.
 *
 * @since 4.3.0
 *
 * @param int    $size    Optional. Size of the site icon. Default 512 (pixels).
 * @param string $url     Optional. Fallback url if no site icon is found. Default empty.
 * @param int    $blog_id Optional. ID of the blog to get the site icon for. Default current blog.
 * @return string Site Icon URL.
 */
function get_site_icon_url($size = 512, $url = '', $blog_id = 0)
{
    if (is_multisite() && (int) $blog_id !== get_current_blog_id()) {
        switch_to_blog($blog_id);
    }
    $site_icon_id = get_option('site_icon');
    if ($site_icon_id) {
        if ($size >= 512) {
            $size_data = 'full';
        } else {
            $size_data = array($size, $size);
        }
        $url = wp_get_attachment_image_url($site_icon_id, $size_data);
    }
    if (is_multisite() && ms_is_switched()) {
        restore_current_blog();
    }
    /**
     * Filter the site icon URL.
     *
     * @site 4.4.0
     *
     * @param string $url     Site icon URL.
     * @param int    $size    Size of the site icon.
     * @param int    $blog_id ID of the blog to get the site icon for.
     */
    return apply_filters('get_site_icon_url', $url, $size, $blog_id);
}

WordPress Version: 4.3

/**
 * Returns the Site Icon URL.
 *
 * @param  int    $size    Size of the site icon.
 * @param  string $url     Fallback url if no site icon is found.
 * @param  int    $blog_id Id of the blog to get the site icon for.
 * @return string          Site Icon URL.
 */
function get_site_icon_url($size = 512, $url = '', $blog_id = 0)
{
    if ($blog_id && is_multisite()) {
        $site_icon_id = get_blog_option($blog_id, 'site_icon');
    } else {
        $site_icon_id = get_option('site_icon');
    }
    if ($site_icon_id) {
        if ($size >= 512) {
            $size_data = 'full';
        } else {
            $size_data = array($size, $size);
        }
        $url_data = wp_get_attachment_image_src($site_icon_id, $size_data);
        if ($url_data) {
            $url = $url_data[0];
        }
    }
    return $url;
}