Here’s how I do it for my clients.
It’s a two step process.
Step 1:
Upload the logo you want into the “images” folder within the theme folder, example:
wp-content/themes/default/images/logo-login.gif
Step 2:
Add the following code to your functions.php file (the one in your theme):
add_action("login_head", "my_login_head");
function my_login_head() {
echo "
<style>
body.login #login h1 a {
background: url('".get_bloginfo('template_url')."/images/logo-login.gif') no-repeat scroll center top transparent;
height: 90px;
width: 400px;
}
</style>
";
}
You may have to adjust the width and height to fit your logo.
If you are not familiar with WordPress actions, I suggest you read up on them. What happens here is add_action tells WordPress to call your special function called my_login_head, which then inserts code into the login page. The code we are inserting is telling WP to use different CSS for the login page. Our CSS tells the element to use a background image from our template folder.