Link Header Image to Home Page

Having the whole header image linking to the home page is one of the most common things of a theme. This article explains how to add this feature to the WordPress theme Twenty Ten.

Edits are to be made in header.php of a child theme of Twenty Ten, at the location recognizable below (theme version 1.6):

<div id="site-description"><?php bloginfo( 'description' ); ?></div>
<a href="<?php echo home_url( '/' ); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home">
// Compatibility with versions of WordPress prior to 3.4.
if ( function_exists( 'get_custom_header' ) ) {
<img src="<?php header_image(); ?>" width="<?php echo $header_image_width; ?>" height="<?php echo $header_image_height; ?>" alt="" />
 <?php endif; ?>
</a></div><!-- #branding -->

The link tag

<a href="<?php echo home_url( '/' ); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home">

was added just after this line

<div id="site-description"><?php bloginfo( 'description' ); ?></div>

and closed it before the end of the #branding div

</a></div><!-- #branding -->

that is all.

27 Replies to “Link Header Image to Home Page”

  1. It’s slightly different in the latest version of the theme…

    Now the <a href="<?php echo home_url( '/' ); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home">
    code will go above the following
    // Compatibility with versions of WordPress prior to 3.4.
    if ( function_exists( 'get_custom_header' ) ) {
    // We need to figure out what the minimum width should be for our featured image.
    // This result would be the suggested width if the theme were to implement flexible widths.
    $header_image_width = get_theme_support( 'custom-header', 'width' );
    } else {
    $header_image_width = HEADER_IMAGE_WIDTH;

  2. You would not believe the stuff I went through last night trying to get this to work on my buddy’s WordPress site. I tinkered with .php files. I looked for plugins. I was ready to commit seppuku with a rusty butter knife.

    I never thought to just wrap a hyperlink around the php. How stupid of me! Thanks, this was super helpful (even in a non-2010 theme)!

  3. I want to replace my WordPress twenty ten. Header with an Image Map.
    When I convert the Actual header to an image map in CS Adobe Photoshop, I get an html image map code and my actual header image broken into 4 different jpeg files, each showing the area where I want a differnt link.

    Now please guide me as to where should I Insert this Image map code, which header file, and do I simply upload the 4 images to my media foler, and update the image source links in the image map code, which I have to insert ???
    or the Image map code will work with my full size header image as well.

  4. Well, that was a nice fix! Thanks a bunch, mr alchymyth 🙂
    Took 30 seconds to implement, and with desired result.

    1. I would like to know how do I add my post images to the top of the grid post box? above the title though

  5. Great tip for someone who isn’t that familiar with php. Thank you. I’ve now been asked if we can link back to our website URL via the header instead of the blog homepage. Is there a way to change the link to an external ‘’ link?

      1. I knew this must be possible, I have searched high and low to find an answer to linking the header image to a page outside of the WordPress directory. I had identified where and which bit of the link needed to be edited, but to what??? (I am no php guru).
        This is a fantastic tip, thank you for sharing it Mr Alchymth.

      2. example:
        <a href=\"\" title="link to outside page" rel="home" rel="nofollow">

        I needed to add \ to get the code to show – remove the two backslash \

  6. Thanks for the tip!

    I added the modified header.php to my TwentyTen child theme (so it’s still there when the theme is updated) and also removed the “title” parameter as I don’t want the tooltip text when hovering the mouse over the header image. So this is the code I added:

    <a href="<?php echo home_url( '/' ); ?>" rel="home">

    1. Hej,
      utmärkt tips!
      I inserted the code in the header.php of my twentyten child and it works great for the whole blog (including post and page header images linking back to the home blog).

      Also, I deleted the title attribute. However, when mousing over the header images of posts or pages, the title is still displayed. Have you got any idea why that is? I didn’t get any answers in the wordpress forum…

      Thanks for your help!

  7. Thank you very much. I translated this into German to spread the news and – of course – linked back to your tipp.

  8. Thank you so much! I felt so dense without knowing how to do this… after reading four or five other blogs about turning the header into a link, yours finally solved my issue. Thank you for making it so clear, too.

    Dallas Divorce

    1. just be aware: as with any modifications on a default theme, an upgrade will overwrite the changes.
      look into the possibility of either creating a child theme ( ), or save the modified theme under its own name in a new folder (also modify the themes stylesheet to reflect the new name: ).

      you can find ongoing support here:

  9. Thanks. I needed exactly what you have done. I am a retired person, taking web programming courses at a local tech college, and we are using WordPress to build a site for a non-profit organization.

    Now, I have to psyche out what is going on with the PHP stuff. Gotta get into the API.

    Once again, thanks.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.