wpseek.com
A WordPress-centric search engine for devs and theme authors
get_custom_logo › WordPress Function
Since4.5.0
Deprecatedn/a
› get_custom_logo ( $blog_id = 0 )
Parameters: |
|
Returns: |
|
Defined at: |
|
Codex: | |
Change Log: |
|
Returns a custom logo, linked to home unless the theme supports removing the link on the home page.
Related Functions: the_custom_logo, has_custom_logo, get_custom_header, wp_get_custom_css, get_post_custom
Source
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; } // We have a logo. Logo is go. if ( has_custom_logo() ) { $custom_logo_id = get_theme_mod( 'custom_logo' ); $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 ); // Check that we have a proper HTML img element. if ( $image ) { 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 ); }