121 thoughts on “Customize the WordPress Login Screen Logo

  1. Very cool plugin indeed for client customization.
    I see you use WP_CONTENT_URL, will the plugin comply to any ‘https’ preference?

  2. Awesome. I try to use the old ‘less is more’ philosophy with all our clients sites too. I’ll be dumping the branding plugin I use at the moment for this one.

    Thanks heaps Mark!

  3. The problem with this is it means I have to do this for a customer anytime they want to make a change or implement this.

    An options screen that allows them to upload any graphic they want is so much easier than explaining FTP, etc. Take that a step further and an option screen that allows the mto upload any graphic they want with built in sizing/cropping tool? Even better.

    Zero configuration is fine for developers and savvy users. Not so much for the average WordPress user who are not comfortable mucking around with the file system, even if it’s as simple as dropping a specified file in a directory.

    1. This plugin is built for developers who want “set it and forget it” functionality. What you’re asking for is inherently different.

      In this case, the lack of UI is a feature. If you’d like a plugin to customize the logo through an options screen with an web-based graphics editor, I’m sure Mark’s code is a wonderful starting place.

    2. I would simply NOT explain FTP, etc. Just make it clear in your agreement that you will customize the login screen once. If they want to change their logo it will be a billable expense.

      This is a great, simple plugin to allow for easy, UI free customization.

    3. This is aimed at developers and other “implementors,” primarily. There are other plugins out there that have upload support, color picking, manual CSS tweaking, etc. Using those plugins would probably slow down developers and implementors. Plus they’d introduce potential security issues, provide an option which would have to be backed up and is susceptible to accidental change by the client.

      This is an alternative to once-off login_head code that devs would throw into functions.php, copy-pasting it from the last project they used it on. Plus, this one measures the height of the image for you, so you don’t have to manually set height: {image height + 3}px; in your once-off plugin. That was the part that always took me the longest… looking up that formula and measuring the image.

  4. Considering Mark probably whipped this up for release after an offhand comment I made this morning about favicons (to which he replied that adding the logo to login screen as well was a nice touch), and then released it for free, it seems a little lame to complain that it’s not fuller-featured. Even if he’d spent weeks building it, it still seems lame to complain about what someone else’s work is missing, when they’ve built it to meet their own needs and specifications, not someone else’s. Isn’t that the whole point of open source, that if you want it to do something different, you have access to the code to build what you need, or you can offer to collaborate with the original author? Mark: you rock for all your contributions to the plugin directory, your patches to core, your frequent replies to questions, and this plugin clearly does what you wanted it to do. Rock on.

    1. What’s lamer is a member of the core team talking down to someone that gave his opinion on a plugin.

      I was commenting on the concept of zero configuration and how it doesn’t always work in situations where you are dealing with clients.

      Someone needs to get off their high horse. But then again a core team member, and you in particular, talking down to a member of the community is par for the course.

    2. Sheesh, some people really like to whine don’t they.

      If you don’t like Mark’s plugin or the way he deals with complainers, then buzz off and make your own competitor. I’m sure he has better things to do than deal with complaints.

    3. I’ve reread Jane, Mark, Pete, and Daryl’s comments and for the record, don’t see them “talking down” to anyone else.

      These are opinions, and everyone has them. We don’t all need to agree, and I believe it’s better that we don’t; it helps widen our perspective on the wants and needs of others, and alerts us to other possible methods to solving a specific problem.

      Jane is right; it’s lame to negatively criticize other people’s work.

      George is right; a plugin with configuration can more easily enable clients to do their own thing.

      But… this plugin isn’t meant for clients to do their thing; it’s meant for the site administrator to set it once, and for the client to never know it happened. It’s one persons’ simplest solution to another persons’ simple problem.

      George, your needs are different, so this plugin was never intended to address your particular need, which explains why you feel how you do about it and why everyone else that *does* need this functionality is happy and appreciative.

  5. Mark,
    How hard would it be to customize the other backgrounds (in the dialog box, behind the dialog box)?

    This is one of those things – that because it’s seen by so few – is that much more impressive (Florenz Ziegfield’s explanation of why he costumed the Ziegfield chorus line not only in beautiful costumes – but in very expensive French undergarments – if you know it’s beautiful but can’t be seen, it provides additional confidence. I think it’s a good theory – although Ziegfield used it as a defense when sued by investors). Thanks for the plugin.

    1. There are other plugins that offer more in terms of login form customization. I’m not looking for this to be the complete solution. Just wanted something simple that devs and implementors could use to very quickly throw a logo up there without any configuration, image measuring, etc.

      This is also far more likely to work (and look good) with future WordPress versions, whereas more in-depth customizations might not translate. That’s one of the reasons I force the image to be a PNG (or at least have a .png extension) — encourages you to take advantage of PNG transparency, instead of doing a GIF/JPG that has the background color hardcoded. The background color of the login screen might change. If your image is a PNG with background transparency, it’ll still work.

  6. Love this plugin. I was just looking for a code to do the same. You saved my life packing the code and making it a plugin. Awesome work.

  7. More plugin authors should try to write more snippets like this. Not only do they make for great ‘how-to’ type examples, they are simple enough that they guarantee infinite backwards compatibility with zero maintenance.

    It’s also the little details that show this is thought out. Other similar plugins place the image in the active theme folder, or in the /uploads folder, but both of those options are moving targets.

    Good work Mark 🙂

  8. This is great! Thanks Mark. This is the stuff devs don’t have time for, and possibly just let go to the wayside (thankfully the WP logo is pretty). It really is something easy that makes such an impact. ¡Muchas gracias Señior!

    1. Err.. can you add some functionality to change the WordPress ‘W’ logo on the left top of Dashboard too?

      That’ll be cooler 😀

  9. I use other option: go to /wp-admin/images and edit logo-login.png

    Is also easy and do the same.

  10. And… when I will update for a new Worpdress version, don’t that change my “logo” image, won’t that replace my logo with the Worpdress logo?

    1. Nope! You’re not overwriting an existing file. You’re creating a new file in your WordPress content directory. It won’t be overwritten by WordPress.

  11. Can I make a suggestion? Why not have the plugin call the image form the themes folder? It is just a nicer way to package the logo. Allows for easier portability.

    1. Good catch! What would be ideal would be if the plugin changed the link from the logo and dropped a little ‘Powered by WordPress’ under the login box

    2. the full pack to change everything :

      add_filter(‘login_headerurl’, create_function(false,”return ‘http://forumcine.ma’;”));
      add_filter(‘login_headertitle’, create_function(false,”return ‘http://forumcine.ma’;”));
      add_action(“login_head”, “my_login_head”);
      function my_login_head() {
      echo ”

      body.login #login h1 a {
      background: url(‘http://forumcine.ma/wordpress/wp-content/uploads/2011/07/logo-forumcinema_mini_2.png’) no-repeat scroll center top transparent;


  12. Completely unrelated so apologies in advance, but I just realised that Mark Jaquith has some snazzy hair in his new photo! Am so used to the other look I keep having to look again…

  13. I followed the (very simple) directions, but my logo is not showing up on my login screen. Hmm. There is nothing there now besides the login box (not seeing the WP logo either). http://byb.brilliancemastery.com/wp-admin

    It seems like the problem is me, because nobody else looks like they are having any trouble! I will see where I went wrong…

  14. Here’s the 64 million dollar question. What url address are you looking for?

    abccompany.com or
    abccompany.com/wordpress or

    You don’t explain that very well and I’d hate to put in the wrong address and muck everything up to the point I can’t get into my or our clients’ sites.

  15. Hi Mark. Excellent plugin. So nice of you to share it with everyone. I often wondered if the login logo was replaceable. Now I know. I agree with a couple of nice suggestions here regarding the URL link and the “Powered by WordPress” text below.

  16. Nifty tool…great work.

    Some points I noted:

    1. I created 325 pixel wide image for my blog, it seems to be aligned to left (http://thecustomizewindows.com/wp-login.php). Noticeable only with close observation, but I guess you can offer center aligned login-logo tool in future 🙂

    2. Alternate upload via wp panel would be great as not all users are familiar with ftp or cpanel upload.

    Again, very nice work, much appreciated 🙂

    1. Abhishek,

      You have customized the CSS of your login screen and made it wider. That’s why it looks like it is left-aligned. Remove this custom CSS and it will look correct.

      For users, there are other plugins that offer upload capabilities. I wanted this to be simple, and be for implementers.

  17. I made something like this a while ago. I never released it as I figured no one would want something so uber simple. I guess I was wrong, lol. Mine isn’t as good as yours though as it doesn’t do any image size calculations.

    Thanks for releasing it 🙂 I’m sure many people will find this very useful.

    We do need more simple plugins like this in the community IMO. I’ve been having a devil of a time finding plugins to implement on a new network I’m setting up. All the usual suspects are full of self-promotional advertising and a bunch of code bloat that is really only useful in specific situations. Keeping the code nice and lean like this is a much better idea IMO. I guess this is my long-winded way of asking you to release more plugins 🙂 Your Subscribe to comments plugin is still one of the best out there, albeit a little out of date now; the reason for it’s popularity I believe is in it’s simplicity. Bulky plugins = bad, lean plugins = good 🙂

  18. Very useful — no fuss, makes it look like I went the extra mile (nobody needs to know how easy this makes it!)


  19. Thanks for sharing Mark. This will make a very nice touch to some installs we’ve done recently, without adding costs to the client.

    Much appreciated!

  20. Hi Mark,

    Awesome plugin. Just one question … wouldn’t it be smarter to look for the login-logo file in, say, the current themes directory? That way devs can easily include a sweet looking login logo and make their theme login-logo ready?

    Anyway, just a thought.

    – Thomas

  21. Thanks for this post …. I have already read the page 4 times. It seems to me there is always something new …

  22. Hi,

    I have implemented a modification in your code and I would like to share it.

    Instead to use the constants WP_CONTENT_DIR and WP_CONTENT_URL what about to use get_stylesheet_directory() and get_stylesheet_directory_uri()?

    With that modification we just need to put the image in the current theme. So, for each new theme a just change the logo based on it.

    Best regards.

  23. This is such a great resource that you are providing and you give it away for free. I love seeing websites that understand the value of providing a quality resource for free.thanks admin

  24. Are you running a blog? If so, you are probably trying to learn how to customize WordPress blogs. There is no doubt that having a customized blog can help gain more readers and attract new visitors. No one likes to see a cookie cutter blog that looks like the rest of them.

  25. Fairly excellent submit. I simply found a persons web site plus wished so that you can tell you this I have quite appreciated reading through a persons site plus reports. Nevertheless Ill often be signing up a persons feast plus I actually hope so that you can look over a persons site again.

  26. The article that you have been shared is very awesome. This is a very nice compilation, possibly the best on the web. Hope to see more useful information from this site

Comments are closed.