get_custom_logo() WordPress Function
The get_custom_logo() function allows you to easily retrieve the custom logo set for your Wordpress site. This function will return the HTML for the logo, which you can then echo or manipulate as needed. This is a quick and easy way to add a custom logo to your site without having to hard-code it into your theme.
get_custom_logo( int $blog_id ) #
Returns a custom logo, linked to home unless the theme supports removing the link on the home page.
Parameters
- $blog_id
(int)(Optional) ID of the blog in question. Default is the ID of the current blog.
Return
(string) Custom logo markup.
Source
File: wp-includes/general-template.php
function get_custom_logo( $blog_id = 0 ) { $html = ''; $switched_blog = false; if ( is_multisite() && ! empty( $blog_id ) && get_current_blog_id() !== (int) $blog_id ) { switch_to_blog( $blog_id ); $switched_blog = true; } $custom_logo_id = get_theme_mod( 'custom_logo' ); // We have a logo. Logo is go. if ( $custom_logo_id ) { $custom_logo_attr = array( 'class' => 'custom-logo', 'loading' => false, ); $unlink_homepage_logo = (bool) get_theme_support( 'custom-logo', 'unlink-homepage-logo' ); if ( $unlink_homepage_logo && is_front_page() && ! is_paged() ) { /* * If on the home page, set the logo alt attribute to an empty string, * as the image is decorative and doesn't need its purpose to be described. */ $custom_logo_attr['alt'] = ''; } else { /* * If the logo alt attribute is empty, get the site title and explicitly pass it * to the attributes used by wp_get_attachment_image(). */ $image_alt = get_post_meta( $custom_logo_id, '_wp_attachment_image_alt', true ); if ( empty( $image_alt ) ) { $custom_logo_attr['alt'] = get_bloginfo( 'name', 'display' ); } } /** * Filters the list of custom logo image attributes. * * @since 5.5.0 * * @param array $custom_logo_attr Custom logo image attributes. * @param int $custom_logo_id Custom logo attachment ID. * @param int $blog_id ID of the blog to get the custom logo for. */ $custom_logo_attr = apply_filters( 'get_custom_logo_image_attributes', $custom_logo_attr, $custom_logo_id, $blog_id ); /* * If the alt attribute is not empty, there's no need to explicitly pass it * because wp_get_attachment_image() already adds the alt attribute. */ $image = wp_get_attachment_image( $custom_logo_id, 'full', false, $custom_logo_attr ); if ( $unlink_homepage_logo && is_front_page() && ! is_paged() ) { // If on the home page, don't link the logo to home. $html = sprintf( '<span class="custom-logo-link">%1$s</span>', $image ); } else { $aria_current = is_front_page() && ! is_paged() ? ' aria-current="page"' : ''; $html = sprintf( '<a href="%1$s" class="custom-logo-link" rel="home"%2$s>%3$s</a>', esc_url( home_url( '/' ) ), $aria_current, $image ); } } elseif ( is_customize_preview() ) { // If no logo is set but we're in the Customizer, leave a placeholder (needed for the live preview). $html = sprintf( '<a href="%1$s" class="custom-logo-link" style="display:none;"><img class="custom-logo" alt="" /></a>', esc_url( home_url( '/' ) ) ); } if ( $switched_blog ) { restore_current_blog(); } /** * Filters the custom logo output. * * @since 4.5.0 * @since 4.6.0 Added the `$blog_id` parameter. * * @param string $html Custom logo HTML output. * @param int $blog_id ID of the blog to get the custom logo for. */ return apply_filters( 'get_custom_logo', $html, $blog_id ); }
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
5.5.1 | Disabled lazy-loading by default. |
5.5.0 | Added option to remove the link on the home page with unlink-homepage-logo theme support for the custom-logo theme feature. |
4.5.0 | Introduced. |