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.
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). |
Để 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 |
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>';
}
?>
functions.php
của theme hoặc trong plugin tùy chỉnh để tránh mất khi cập nhật theme.$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);