Add Custom CSS to WordPress Admin

By  on  

Believe it or not, I spend an awful lot of time going through my blog's comments and correcting spelling issues, code formatting, etc.; yes, even the comments from way back to 2007.  It's mostly for quality control purposes and ease of reading for my readers, especially the code comments.

One gripe I have with WordPress' admin section is that it's difficult to spot <pre> tag contents, especially code samples that are only one line.  It made me think: "wouldn't it be awesome if I could add my own styles to the WordPress admin interface?"  If it's awesome, I want to do it, so here's how you can add your own custom styles to WordPress admin!

Step 1:  Create Your CSS File

You can place the CSS file wherever you'd like; I've chosen to place the CSS file within my theme.  My admin CSS file looks like:

.wp-admin .comment pre {
  background: pink; /* they forgot the language! */
  padding: 6px 10px;
  font-size: 16px;
  border: 1px solid #ccc;
}

.wp-admin .comment pre[class] {
  background: #fff; /* language (likely) there */
}

The CSS above makes <pre> tags more visible.  It also will make any PRE element without a class more apparent, teling me I need to fix it by adding the language as a className.

Step 2:  Add Your CSS to WordPress Admin in functions.php

WordPress uses an add_action type of admin_enqueue_scripts for adding stylesheets anywhere within WordPress:

// Update CSS within in Admin
function admin_style() {
  wp_enqueue_style('admin-styles', get_template_directory_uri().'/admin.css');
}
add_action('admin_enqueue_scripts', 'admin_style');

get_template_directory_uri provides the path to your current theme, you simply need to add the filename to the end of the path.

If you get annoyed with WordPress Admin styles like myself, feel free to jump in and change them.  My update was very simple; if you want to completely overhaul the WordPress theme so your clients think they're getting a completely customized system, feel free to do so!

Recent Features

  • By
    CSS @supports

    Feature detection via JavaScript is a client side best practice and for all the right reasons, but unfortunately that same functionality hasn't been available within CSS.  What we end up doing is repeating the same properties multiple times with each browser prefix.  Yuck.  Another thing we...

  • By
    CSS 3D Folding Animation

    Google Plus provides loads of inspiration for front-end developers, especially when it comes to the CSS and JavaScript wonders they create. Last year I duplicated their incredible PhotoStack effect with both MooTools and pure CSS; this time I'm going to duplicate...

Incredible Demos

  • By
    Fading Links Using jQuery:  dwFadingLinks

    UPDATE: The jQuery website was down today which caused some issues with my example. I've made everything local and now the example works. Earlier this week, I posted a MooTools script that faded links to and from a color during the mouseover and mouseout events.

  • By
    Introducing MooTools ElementSpy

    One part of MooTools I love is the ease of implementing events within classes. Just add Events to your Implements array and you can fire events anywhere you want -- these events are extremely helpful. ScrollSpy and many other popular MooTools plugins would...

Discussion

  1. Kristy

    Thank you for this! It was extremely useful :)

  2. Paul

    It should be get_stylesheet_directory_uri() instead of get_template_directory_uri() if you’ve put the admin.css in a child theme.

  3. i’ve tried both get_template_directory_uri and get_stylesheet_directory_uri but getting some issues

  4. Matthew

    You can also use Custom CSS Injector plugin ( https://wordpress.org/plugins/css-injector/ ) to add custom CSS only to admin area.

  5. Use

    get_stylesheet_directory_uri()

    if you use a child theme.

  6. get_stylesheet_directory_uri()

    should be used instead of

    get_template_directory_uri()

    as you shouldn’t modify the theme/template files directly. Instead, you should use a child theme for modifications such as this…

    Correct code for child theme functions.php file below:

    // Update CSS within in Admin
    function admin_style() {
      wp_enqueue_style('admin-styles', get_stylesheet_directory_uri() . '/admin.css');
    }
    add_action('admin_enqueue_scripts', 'admin_style');
    

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!