Tùy biến mục “Tin nhanh” (At a Glance) trong Dashboard WordPress để hiển thị CPT, taxonomy, media và plugin

Mặc định, khu vực “Tin nhanh” (Glance hoặc At a Glance) trong bảng điều khiển WordPress chỉ hiển thị số lượng bài viết, trang và bình luận. Tuy nhiên, nếu bạn sử dụng custom post type, custom taxonomy, hoặc muốn theo dõi thêm các dữ liệu như media, plugin, thành viên, thì việc mở rộng phần này là rất cần thiết.

Tùy biến mục “Tin nhanh” (At a Glance) trong Dashboard WordPress để hiển thị CPT, taxonomy, media và plugin

Trong bài viết này, mình sẽ hướng dẫn cách thêm thông tin chi tiết vào khu vực Tin nhanh, đồng thời hiển thị icon Dashicons đẹp mắt cho từng dòng thông tin.

Kết quả sau khi cài đặt

Bạn sẽ thấy trong Dashboard các dòng thống kê như:

  • Tin tức
  • Nhãn dán
  • Hiệu ứng
  • Khung ảnh đại diện
  • Thể loại
  • Nhóm
  • Tác giả
  • Thành viên
  • Media
  • Plugin
  • Truyện (category)
  • Chuyên mục (newstax)
  • Thẻ (tag)

Tất cả đều có icon đại diện tương ứng, dễ nhìn và rất chuyên nghiệp. Bạn có thể điều chỉnh các loại dữ liệu muốn thống kê phù hợp với dự án của mình nhé.

Mã hoàn chỉnh bạn có thể thêm vào functions.php

1. Thêm các dòng thông tin trong Dashboard Glance

add_action('dashboard_glance_items', 'custom_dashboard_glance_items_with_icons');
function custom_dashboard_glance_items_with_icons() {
    // Category, Taxonomy, Tag
    $category_count = wp_count_terms('category');
    if ($category_count > 0) {
        echo "<li class='custom-count category'>
                <a href='" . admin_url('edit-tags.php?taxonomy=category') . "'>{$category_count} Truyện</a>
              </li>";
    }

    $newstax_count = wp_count_terms('newstax');
    if ($newstax_count > 0) {
        echo "<li class='custom-count newstax'>
                <a href='" . admin_url('edit-tags.php?taxonomy=newstax') . "'>{$newstax_count} Chuyên mục</a>
              </li>";
    }

    $tag_count = wp_count_terms('post_tag');
    if ($tag_count > 0) {
        echo "<li class='custom-count tag'>
                <a href='" . admin_url('edit-tags.php?taxonomy=post_tag') . "'>{$tag_count} Thẻ</a>
              </li>";
    }

    // Custom Post Types
    $custom_post_types = [
        'news'    => ['label' => 'Tin tức'],
        'teams'   => ['label' => 'Nhóm'],
        'artist'  => ['label' => 'Tác giả'],
        'genre'   => ['label' => 'Thể loại'],
        'sticker' => ['label' => 'Nhãn dán'],
        'frame'   => ['label' => 'Khung ảnh đại diện'],
        'effect'  => ['label' => 'Hiệu ứng'],
    ];

    foreach ($custom_post_types as $post_type => $data) {
        $count = wp_count_posts($post_type)->publish;
        if ($count > 0) {
            echo "<li class='custom-count {$post_type}'>
                    <a href='" . admin_url("edit.php?post_type={$post_type}") . "'>{$count} {$data['label']}</a>
                  </li>";
        }
    }

    // Thành viên
    if (current_user_can('list_users')) {
        $users = count_users();
        echo "<li class='custom-count users'>
                <a href='" . admin_url('users.php') . "'>{$users['total_users']} thành viên</a>
              </li>";
    }

    // Media
    $media_query = new WP_Query([
        'post_type' => 'attachment',
        'post_status' => 'inherit',
        'fields' => 'ids',
        'posts_per_page' => -1,
    ]);
    $media_count = count($media_query->posts);
    if ($media_count > 0) {
        echo "<li class='custom-count media'>
                <a href='" . admin_url('upload.php') . "'>{$media_count} Media</a>
              </li>";
    }

    // Plugins
    $plugins = get_plugins();
    $plugin_count = count($plugins);
    if ($plugin_count > 0) {
        echo "<li class='custom-count plugins'>
                <a href='" . admin_url('plugins.php') . "'>{$plugin_count} Plugin</a>
              </li>";
    }
}

2. Thêm CSS hiển thị icon cho từng dòng thông tin

add_action('admin_head', 'add_custom_admin_css_inline');
function add_custom_admin_css_inline() {
    ?>
    <style>
        li.custom-count.teams a:before { content: "\f448" !important; }
        li.custom-count.artist a:before { content: "\f12f" !important; }
        li.custom-count.genre a:before { content: "\f479" !important; }
        li.custom-count.news a:before { content: "\f495" !important; }
        li.custom-count.sticker a:before { content: "\f233" !important; }
        li.custom-count.frame a:before { content: "\f159" !important; }
        li.custom-count.effect a:before { content: "\f533" !important; }
        li.custom-count.users a:before { content: "\f110" !important; }
        li.custom-count.category a:before { content: "\f318" !important; }
        li.custom-count.newstax a:before { content: "\f318" !important; }
        li.custom-count.tag a:before { content: "\f323" !important; }
        li.custom-count.media a:before { content: "\f104" !important; }
        li.custom-count.plugins a:before { content: "\f106" !important; }
    </style>
    <?php
}

Lưu ý khi sử dụng

  • Chức năng này không ảnh hưởng đến front-end, chỉ để quản trị viên dễ quản lý.
  • Bạn có thể thêm hoặc bớt loại nội dung tùy theo cấu trúc website của mình.
  • Dashicons là bộ icon mặc định trong WordPress admin. Bạn có thể tra mã icon tại trang Dashicon của WordPress.

Tổng kết

Tùy biến mục Tin nhanh là cách đơn giản nhưng cực kỳ hiệu quả để giúp bạn theo dõi sát sao nội dung website WordPress. Bằng việc hiển thị các CPT, taxonomy, media và plugin, bạn sẽ có cái nhìn toàn cảnh ngay khi đăng nhập vào Dashboard.

Chúc bạn thành công trong việc mở rộng giao diện quản trị WordPress của mình!

Bình Luận


  • Không có bình luận.