VANHIEP.NET - Làm web giá rẻ - Thiết Kế Website - Thiết Kế Ứng Dụng Mobile

Wordpress - Tổng hợp các hook sử dụng trong vùng admin

Bài viết hướng dẫn chi tiết cách thêm menu tùy chỉnh vào khu vực quản trị WordPress bằng hàm add_menu_page, giúp bạn dễ dàng tạo trang quản lý riêng như "Project" với quyền kiểm soát, icon và vị trí hiển thị tùy chỉnh.

Hướng dẫn thêm menu tùy chỉnh trong admin WordPress

1. Hàm add_menu_page

Để thêm một mục menu mới trên trang quản trị WordPress, bạn sử dụng hàm:

add_menu_page($page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position);

Ý nghĩa từng tham số:

Tham số Mô tả
$page_title Tiêu đề của trang, sẽ hiển thị trên thẻ <title> của trình duyệt khi vào trang này.
$menu_title Tên menu sẽ hiển thị trong danh sách menu bên trái trong admin.
$capability Quyền của người dùng (role) có thể nhìn thấy và thao tác menu này, ví dụ: 'manage_options' (quản trị viên).
$menu_slug Chuỗi định danh duy nhất cho menu, dùng làm phần URL truy cập trang (ví dụ: 'project').
$function Tên hàm sẽ được gọi để hiển thị nội dung của trang khi người dùng click vào menu này.
$icon_url Đường dẫn đến icon hiển thị bên cạnh menu, có thể là URL hoặc tên icon mặc định của WordPress.
$position Vị trí hiển thị của menu trong danh sách menu, tính từ trên xuống (ví dụ: 99 để hiển thị gần cuối).

2. Vị trí (position) các menu mặc định trong WordPress

Để dễ dàng chọn vị trí menu phù hợp, bạn có thể tham khảo bảng vị trí của các menu mặc định như sau:

Vị trí Menu
2 Dashboard
4 Separator
5 Post
10 Media
15 Links
20 Pages
25 Comments
59 Separator
60 Appearance
65 Plugins
70 Users
75 Tools
80 Settings
99 Separator

3. Ví dụ minh họa

Dưới đây là ví dụ thêm menu có tên Project vào admin WordPress với các thiết lập cơ bản:

<?php
// Hook để thêm menu khi admin load
add_action('admin_menu', 'addProjectMenu');

function addProjectMenu() {
    add_menu_page(
        'Project',          // Tiêu đề trang
        'Project',          // Tên menu hiển thị
        'manage_options',   // Quyền truy cập (quản trị viên)
        'project',          // Slug URL của menu
        'projectManager',   // Hàm hiển thị nội dung khi click vào menu
        '',                 // Icon (để trống dùng mặc định)
        99                  // Vị trí hiển thị menu (gần cuối)
    );
}

// Hàm hiển thị nội dung trang Project
function projectManager() {
    echo '<h1>Đây là trang quản lý Project</h1>';
}
?>

4. Lưu ý

  • Bạn nên khai báo đoạn mã trên trong file functions.php của theme hoặc trong plugin tùy chỉnh để tránh mất khi cập nhật theme.
  • Tham số $icon_url có thể dùng icon mặc định của WordPress như 'dashicons-admin-site', ví dụ: add_menu_page('Project', 'Project', 'manage_options', 'project', 'projectManager', 'dashicons-admin-site', 99);
  • Vị trí menu nên chọn hợp lý để không trùng với menu mặc định, tránh gây rối cho người dùng.