Building a Custom WordPress Admin Dashboard

When I hand a WordPress site to a client, the first thing they see is the admin dashboard — and it is usually a mess. WordPress news, quick draft, events, plugin promotions. None of it is useful to someone who just wants to manage their content.
Remove Default Widgets
First, clear the clutter:
add_action("wp_dashboard_setup", function () {
// Remove default widgets
remove_meta_box("dashboard_quick_press", "dashboard", "side");
remove_meta_box("dashboard_primary", "dashboard", "side");
remove_meta_box("dashboard_site_health", "dashboard", "normal");
remove_meta_box("dashboard_right_now", "dashboard", "normal");
remove_meta_box("dashboard_activity", "dashboard", "normal");
});
Add Useful Custom Widgets
Replace them with widgets that actually help your client:
add_action("wp_dashboard_setup", function () {
wp_add_dashboard_widget(
"site_overview",
"Site Overview",
function () {
$posts = wp_count_posts();
$pages = wp_count_posts("page");
$projects = wp_count_posts("adz_project");
echo "<ul>";
echo "<li><strong>{$posts->publish}</strong> Published Posts</li>";
echo "<li><strong>{$pages->publish}</strong> Pages</li>";
echo "<li><strong>{$projects->publish}</strong> Projects</li>";
echo "</ul>";
}
);
});
Quick Action Links
I also add a “Quick Actions” widget with links to the things clients do most — add a new post, update the homepage, view the site. Simple, direct, and infinitely more useful than WordPress news feeds.
A clean admin dashboard reduces client confusion, cuts down on support requests, and makes the whole WordPress experience feel more professional.
Written by
Adrian Saycon
A developer with a passion for emerging technologies, Adrian Saycon focuses on transforming the latest tech trends into great, functional products.


