Saturday, January 4, 2025

3 min read

How to Customize the WordPress Admin Dashboard Without a Plugin

The default WordPress dashboard gets the job done, but it’s not exactly inspiring. The good news? You can completely customize it — from hiding unnecessary widgets to adding your own tools and styling — without a single plugin. Here’s how to do it cleanly with a few lines of PHP and CSS in your theme’s `functions.php` file.

Step 1: Understand the Admin Dashboard

The WordPress admin dashboard is the first screen you see after logging in. It shows an overview of your site with widgets like ‘At a Glance’, ‘Activity’, and ‘Quick Draft’. You can control exactly which widgets appear and even create your own for a custom workflow.

Step 2: Remove Unnecessary Dashboard Widgets

Start by removing any widgets you don’t need. For example, here’s how to remove the ‘Quick Draft’ box:

php
function remove_dashboard_widgets() {
      global $wp_meta_boxes;
      unset( $wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press'] );
  }
  add_action( 'wp_dashboard_setup', 'remove_dashboard_widgets' );

You can duplicate the `unset()` line and swap the ID (like `dashboard_activity`, `dashboard_primary`, or `dashboard_right_now`) to remove other widgets. It’s a simple way to clean up the dashboard for yourself or your clients.

Step 3: Add a Custom Dashboard Widget

Let’s add something useful back in — a custom dashboard widget. Maybe you want to greet clients or show key site info. Add this code:

php
1function add_custom_dashboard_widget() {
2      wp_add_dashboard_widget(
3          'custom_dashboard_widget',
4          'My Custom Dashboard Widget',
5          'custom_dashboard_widget_content'
6      );
7  }
8  add_action( 'wp_dashboard_setup', 'add_custom_dashboard_widget' );
9  
10  function custom_dashboard_widget_content() {
11      echo '<p>Welcome to your custom dashboard! You can edit this message in functions.php.</p>';
12  }

This adds a new widget titled **My Custom Dashboard Widget** to your dashboard. You can output anything inside it — HTML, analytics data, or custom notices for site admins.

Want to replace WordPress’s default footer text with your own? Add this function:

php
function custom_admin_footer() {
      echo 'Built with ❤️ by Your Name';
  }
  add_filter( 'admin_footer_text', 'custom_admin_footer' );

Replace `'Your Name'` with your name, company, or a simple message. It’s a small touch that helps personalize the admin area — great for client sites.

Step 5: Add Custom CSS Styles

Finally, let’s tweak the look of the admin area with some quick inline CSS. You can change colors, fonts, or layout styles to match your brand.

php
1function custom_admin_css() {
2      echo '<style>
3          body { background-color: #f7f7f7; }
4          #wpadminbar { background-color: #0073aa; }
5          .wrap h1 { color: #0073aa; }
6      </style>';
7  }
8  add_action( 'admin_head', 'custom_admin_css' );

This example changes the dashboard’s background color, adjusts the admin bar, and updates heading colors. You can expand it with your own CSS rules to fully restyle the admin.

Full Working Example

php
1// Remove widgets
2  function remove_dashboard_widgets() {
3      global $wp_meta_boxes;
4      unset( $wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press'] );
5  }
6  add_action( 'wp_dashboard_setup', 'remove_dashboard_widgets' );
7  
8  // Add custom widget
9  function add_custom_dashboard_widget() {
10      wp_add_dashboard_widget(
11          'custom_dashboard_widget',
12          'My Custom Dashboard Widget',
13          'custom_dashboard_widget_content'
14      );
15  }
16  add_action( 'wp_dashboard_setup', 'add_custom_dashboard_widget' );
17  
18  function custom_dashboard_widget_content() {
19      echo '<p>Welcome to your custom dashboard!</p>';
20  }
21  
22  // Change admin footer text
23  function custom_admin_footer() {
24      echo 'Built with ❤️ by Your Name';
25  }
26  add_filter( 'admin_footer_text', 'custom_admin_footer' );
27  
28  // Add custom admin CSS
29  function custom_admin_css() {
30      echo '<style>
31          body { background-color: #f7f7f7; }
32          .wrap h1 { color: #0073aa; }
33      </style>';
34  }
35  add_action( 'admin_head', 'custom_admin_css' );

WordPress Developer Handbook: Dashboard Widgets API reference:

Guide to customizing the WordPress Admin area:

That’s it — your dashboard is now fully personalized. Whether you’re building sites for clients or want a workspace that feels more like your own, customizing the admin area is a great way to improve the backend experience without adding another plugin.

About the Author
Jonas Lindemann

I’m an experienced SEO professional with over a decade of helping over 100 businesses rank higher online, especially local businesses, e-commerce stores and SaaS. As the co-founder of LPagery, I specialize in practical, proven strategies for regular SEO and Local SEO success.