Change Custom Logo URL

This is a Developer Level doc.

If you're unfamiliar with PHP and/or editing files, codes and templates, as well as with resolving possible conflict, please seek help from a professional. Under our Support Policy, we don't provide support for modifications and customization.

By default, the logo on your website will lead users to your homepage. If you wish to alter/change the URL of the logo in your header, use the following PHP snippet:

 * Change the custom logo URL
function my_custom_logo_link() {

	// The logo
    $custom_logo_id = get_theme_mod( 'custom_logo' );

    // If has logo
    if ( $custom_logo_id ) {

    	// Attr
	    $custom_logo_attr = array(
			'class'    => 'custom-logo',
			'itemprop' => 'logo',

		// Image alt
		$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' );

	    // Get the image
	    $html = sprintf( '<a href="%1$s" class="custom-logo-link" rel="home" itemprop="url">%2$s</a>',
			esc_url( '' ),
			wp_get_attachment_image( $custom_logo_id, 'full', false, $custom_logo_attr )


	// Return
    return $html;   
add_filter( 'get_custom_logo', 'my_custom_logo_link' );

Change the esc_url value in the // Get the image section per your need.

All PHP snippets should be added via a child theme's functions.php file.

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.