Custom WordPress Login Page Without a Plugin

It’s really easy to add custom styles to your WordPress login page without needing to install a plugin.

Simply add the following to your functions.php file:

// Calling your own login css so you can style it
function joints_login_css() {
	wp_enqueue_style( 'joints_login_css', get_template_directory_uri() . '/login.css', false );

// Changing the logo link from to your site
function joints_login_url() {  return home_url(); }

// Changing the alt text on the logo to show your site name
function joints_login_title() { return get_option('blogname'); }

// Calling it only on the login page
add_action( 'login_enqueue_scripts', 'joints_login_css', 10 );
add_filter('login_headerurl', 'joints_login_url');
add_filter('login_headertitle', 'joints_login_title');

You’ll also need to create a new stylesheet for your login styles. Here is some basic styling you can use to change the logo of the login page:

.login h1 a {
  background: url(../images/login-logo.png) no-repeat top center;
  /* Make sure to update these with the dimensions of your logo */
  width: 326px;
  height: 67px;
  text-indent: -9999px;
  overflow: hidden;
  padding-bottom: 15px;
  display: block;

This code comes included with JointsWP and is very similar to the code found in Bones.