Cách Ẩn Admin Menu WordPress: Hướng Dẫn Chi Tiết 2026

Nội dung

Bạn đang bàn giao website WordPress cho khách hàng và muốn ẩn bớt các menu kỹ thuật? Bài viết này hướng dẫn bạn 2 cách: dùng code snippet và plugin — kèm danh sách menu wordpress slug phổ biến.
Giao diện WordPress dashboard với menu admin được tùy chỉnh cho khách hàng
Giao diện WordPress dashboard với menu được tùy chỉnh

Tóm tắt nhanh

  • WordPress cung cấp hàm remove_menu_page() để ẩn menu admin mà không cần plugin nặng
  • Bạn nên kết hợp với kiểm tra user capability (current_user_can()) để chỉ ẩn menu với người dùng không phải admin
  • Có thể dùng plugin như Admin Menu Editor hoặc WP Adminify nếu không thoải mái với code
  • Ẩn menu chỉ là ẩn giao diện — cần chặn quyền truy cập URL để đảm bảo bảo mật thực sự

Tại sao cần ẩn admin menu trong WordPress?

Ẩn admin menu là cách nhanh nhất để giảm bối rối cho khách hàng khi bàn giao website WordPress. Mặc định, WordPress hiển thị rất nhiều menu trong dashboard — từ Plugins, Tools, Appearance cho đến Users. Với người dùng không chuyên, đây là một ” mê cung” thực sự.

Theo khảo sát của WP Adminify, 67% khách hàng không chuyên từng vô tình click nhầm vào menu kỹ thuật và gây lỗi website [1]. Chỉ cần ẩn đi những menu không cần thiết bằng cách ẩn admin menu WordPress, bạn giảm đáng kể rủi ro và tăng trải nghiệm người dùng.

Bạn đang đọc bài viết thuộc chuyên mục WordPress của VietnamTutor — nơi mình chia sẻ những thủ thuật quản trị website dựa trên kinh nghiệm thực chiến với hàng trăm dự án.

Có hai lý do chính để ẩn admin menu:

  • Giảm bối rối cho khách hàng — Chỉ hiển thị menu họ thực sự cần: Posts, Pages, Media, và một số tùy chỉnh cơ bản.
  • Bảo mật nâng cao — Ngăn người dùng cố tình hoặc vô tình truy cập các khu vực nhạy cảm như Plugins, Theme Editor, hay Settings.
Giao diện WordPress admin trước và sau khi ẩn admin menu wordpress
Trước và sau khi ẩn admin menu WordPress

Cách dùng hàm remove_menu_page() để ẩn admin menu WordPress

Hàm remove_menu_page() là cách nhanh nhất để ẩn một menu cấp cao nhất trong WordPress admin. Hàm này được tích hợp sẵn trong WordPress core từ phiên bản 3.1.0, không cần cài thêm gì [2].

Cú pháp cơ bản

Hàm nhận một tham số duy nhất là $menu_slug — chính là chuỗi định danh của menu mà bạn muốn ẩn.

function remove_menu_page( string $menu_slug )

Ví dụ đơn giản nhất

Đoạn code dưới đây ẩn menu Comments và Tools cho tất cả người dùng:

function vietnamsite_remove_admin_menus() {
    remove_menu_page( 'edit-comments.php' );  // Ẩn menu Comments
    remove_menu_page( 'tools.php' );           // Ẩn menu Tools
}
add_action( 'admin_menu', 'vietnamsite_remove_admin_menus', 999 );

Bạn nhúng đoạn code này vào file functions.php của theme đang dùng (hoặc child theme để tránh mất khi cập nhật theme). Priority 999 đảm bảo code chạy sau khi WordPress đã build xong toàn bộ menu [3].

Đoạn code remove_menu_page trong file functions.php ẩn admin menu wordpress
Code snippet ẩn admin menu WordPress trong functions.php

Cách ẩn menu theo vai trò người dùng

Việc ẩn menu cho tất cả người dùng thường không đủ — bạn cần phân biệt theo vai trò để chỉ ẩn menu với người không phải admin. WordPress cung cấp hàm current_user_can() để kiểm tra capability của người dùng hiện tại.

Kiểm tra vai trò Administrator

Đoạn code dưới đây chỉ ẩn menu Plugins, Appearance và Settings khi người dùng không phải Administrator:

function vietnamsite_hide_menu_for_non_admins() {
    // current_user_can('manage_options') = Administrator
    if ( ! current_user_can( 'manage_options' ) ) {
        remove_menu_page( 'plugins.php' );         // Plugins
        remove_menu_page( 'themes.php' );           // Appearance
        remove_menu_page( 'options-general.php' ); // Settings
        remove_menu_page( 'tools.php' );            // Tools
        remove_menu_page( 'users.php' );            // Users
    }
}
add_action( 'admin_menu', 'vietnamsite_hide_menu_for_non_admins', 999 );

Kiểm tra vai trò Editor

Nếu bạn muốn ẩn thêm menu Posts và Comments cho Editor (chỉ để họ quản lý Pages):

function vietnamsite_editor_menu_cleanup() {
    if ( current_user_can( 'editor' ) ) {
        remove_menu_page( 'edit.php' );             // Posts
        remove_menu_page( 'edit-comments.php' );    // Comments
        remove_menu_page( 'upload.php' );           // Media
    }
}
add_action( 'admin_menu', 'vietnamsite_editor_menu_cleanup', 999 );

Danh sách capabilities phổ biến trong WordPress

manage_options
Administrator — quyền cao nhất, truy cập mọi thứ
edit_others_posts
Editor — quản lý mọi bài viết, pages, comments
publish_posts
Author, Contributor — có thể đăng bài
read
Subscriber — chỉ đọc, không đăng bài
Sơ đồ phân quyền người dùng WordPress để ẩn admin menu wordpress theo vai trò
Phân quyền người dùng WordPress theo capability

Danh sách menu slug phổ biến để ẩn admin menu WordPress

Để ẩn đúng menu, bạn cần biết chính xác slug của từng menu trong WordPress. Dưới đây là danh sách đầy đủ các menu slug mặc định và slug của một số plugin phổ biến [4]:

MenuSlug
Dashboardindex.php
Postsedit.php
Mediaupload.php
Pagesedit.php?post_type=page
Commentsedit-comments.php
Appearancethemes.php
Pluginsplugins.php
Usersusers.php
Toolstools.php
Settingsoptions-general.php
WooCommercewoocommerce
Yoast SEOwpseo_dashboard
Elementorelementor
Contact Form 7wpcf7

Code đầy đủ cho bàn giao website cho khách hàng

Đoạn code dưới đây là template hoàn chỉnh để ẩn hầu hết menu kỹ thuật khi bàn giao website cho khách hàng (chỉ để lại menu cần thiết):

/**
 * Ẩn admin menu cho khách hàng - VietnamTutor
 * Chỉ giữ lại: Dashboard, Posts, Pages, Media, Profile
 */
function vietnamsite_client_admin_cleanup() {
    // Chỉ áp dụng cho người không phải admin
    if ( ! current_user_can( 'manage_options' ) ) {
        remove_menu_page( 'edit-comments.php' );          // Comments
        remove_menu_page( 'themes.php' );                // Appearance
        remove_menu_page( 'tools.php' );                  // Tools
        remove_menu_page( 'options-general.php' );        // Settings
        remove_menu_page( 'plugins.php' );                // Plugins
        remove_menu_page( 'users.php' );                   // Users
        remove_menu_page( 'index.php' );                   // Dashboard (ẩn nếu cần)
        remove_menu_page( 'edit.php' );                   // Posts (ẩn nếu cần)
        
        // Ẩn submenu nhạy cảm
        remove_submenu_page( 'themes.php', 'theme-editor.php' ); // Theme Editor
        remove_submenu_page( 'themes.php', 'customize.php' );     // Customize (ẩn nếu cần)
        remove_submenu_page( 'plugins.php', 'plugin-editor.php' ); // Plugin Editor
    }
}
add_action( 'admin_menu', 'vietnamsite_client_admin_cleanup', 999 );
Danh sách menu slug phổ biến để ẩn admin menu wordpress
Danh sách menu slug phổ biến trong WordPress

Cách ẩn submenu trong WordPress để hoàn thiện ẩn admin menu

Ngoài menu cấp cao nhất, bạn cũng nên ẩn các submenu nhạy cảm bên trong. WordPress cung cấp hàm remove_submenu_page() để làm việc này [5].

Cú pháp

remove_submenu_page( $menu_slug, $submenu_slug )

Tham số đầu tiên là slug của menu cha, tham số thứ hai là slug của submenu cần ẩn.

Ví dụ ẩn Theme Editor và Plugin Editor

Đây là hai submenu nguy hiểm nhất — chúng cho phép chỉnh sửa trực tiếp code của theme và plugin, có thể phá hỏng toàn bộ website:

function vietnamsite_remove_dangerous_submenus() {
    if ( ! current_user_can( 'manage_options' ) ) {
        // Ẩn Theme Editor trong Appearance
        remove_submenu_page( 'themes.php', 'theme-editor.php' );
        
        // Ẩn Plugin Editor trong Plugins
        remove_submenu_page( 'plugins.php', 'plugin-editor.php' );
        
        // Ẩn Customize trong Appearance (nếu không muốn khách tùy chỉnh giao diện)
        remove_submenu_page( 'themes.php', 'customize.php' );
        
        // Ẩn Widgets và Menu (nếu chỉ muốn khách quản lý nội dung)
        remove_submenu_page( 'themes.php', 'widgets.php' );
        remove_submenu_page( 'themes.php', 'nav-menus.php' );
    }
}
add_action( 'admin_menu', 'vietnamsite_remove_dangerous_submenus', 999 );

Ẩn submenu của plugin cụ thể

Nếu khách hàng dùng plugin như Contact Form 7 hoặc WooCommerce, bạn có thể ẩn submenu không cần thiết:

function vietnamsite_cleanup_plugin_submenus() {
    if ( ! current_user_can( 'manage_options' ) ) {
        // WooCommerce submenus
        remove_submenu_page( 'woocommerce', 'wc-settings' );
        remove_submenu_page( 'woocommerce', 'wc-addons' );
        remove_submenu_page( 'woocommerce', 'woo-ai' );
        
        // Contact Form 7 submenus
        remove_submenu_page( 'wpcf7', 'wpcf7-integration' );
    }
}
add_action( 'admin_menu', 'vietnamsite_cleanup_plugin_submenus', 999 );

Dùng plugin thay thế code

Nếu bạn không thoải mái với việc chỉnh sửa code, có nhiều plugin giúp ẩn admin menu WordPress dễ dàng. Theo thống kê của CodeCanyon, plugin Hide Admin Menu đã được bán hơn 1.000 lượt với rating 4.52 sao [6].

1. Admin Menu Editor (miễn phí)

Plugin cho phép bạn ẩn, đổi tên, sắp xếp lại thứ tự menu qua giao diện trực quan. Ưu điểm: nhẹ, miễn phí, dễ dùng. Nhược điểm: không có tính năng chặn URL trực tiếp.

2. WP Adminify

Plugin cao cấp với giao diện kéo-thả để quản lý admin menu. WP Adminify cũng cung cấp tính năng chặn URL — đảm bảo người dùng không thể truy cập trang bị ẩn bằng cách gõ trực tiếp URL [1].

3. ID Admin Menu Customizer (miễn phí)

Plugin miễn phí cho phép kéo-thả sắp xếp lại menu, ẩn menu bằng icon mắt, và thêm divider. Phiên bản mới nhất (1.1.1) đã được cập nhật tương thích WordPress 6.9 [7].

4. Incognito Admin Manager

Plugin tập trung vào phân quyền theo vai trò. Phiên bản Pro hỗ trợ chế độ “Block & Show No Access Page” — không chỉ ẩn menu mà còn chặn truy cập URL cho từng vai trò cụ thể [8].

So sánh các plugin ẩn admin menu WordPress tốt nhất
So sánh các plugin ẩn admin menu WordPress

Lưu ý bảo mật quan trọng

Ẩn menu không đồng nghĩa với chặn quyền truy cập. Đây là sai lầm phổ biến nhất khi tùy chỉnh admin menu.

Ẩn menu ≠ Chặn truy cập

Khi bạn dùng remove_menu_page(), menu biến mất khỏi sidebar nhưng người dùng vẫn có thể truy cập trang đó bằng cách gõ trực tiếp URL vào trình duyệt. Ví dụ, nếu bạn ẩn menu Plugins, người dùng vẫn có thể truy cập /wp-admin/plugins.php.

Giải pháp: Kết hợp với capability check

Cách tốt nhất là kết hợp ẩn menu với kiểm tra capability ở cấp độ trang. Bạn có thể dùng hook admin_init để chặn hoàn toàn:

function vietnamsite_block_admin_access() {
    // Chuyển hướng về dashboard nếu không phải admin cố truy cập trang nhạy cảm
    if ( ! current_user_can( 'manage_options' ) 
        && ! wp_doing_ajax()
        && isset( $_GET['page'] ) 
        && in_array( $_GET['page'], array( 'wc-settings', 'wc-addons', 'woo-ai' ) ) ) {
        wp_die( 'Bạn không có quyền truy cập trang này.' );
    }
}
add_action( 'admin_init', 'vietnamsite_block_admin_access' );

Nên dùng plugin bảo mật chuyên dụng

Nếu bạn cần bảo mật nghiêm ngặt, hãy dùng plugin như WP Adminify hoặc Incognito Admin Manager Pro — chúng hỗ trợ chế độ “Block & Show No Access Page” thay vì chỉ ẩn menu [1][8].

Sử dụng child theme

Khi thêm code vào functions.php, luôn dùng child theme. Nếu không, code sẽ bị xóa khi bạn cập nhật theme chính. Cách tốt nhất là tạo plugin tùy chỉnh riêng (muốn-đặt-tên) để giữ code độc lập với theme.

Cảnh báo bảo mật ẩn admin menu wordpress không đồng nghĩa chặn truy cập
Ẩn menu ≠ Chặn quyền truy cập — cần kết hợp kiểm tra capability

Nguồn tham khảo

  1. WP Adminify – How to Reorder and Remove Admin Menu Items in WordPress (Nov 2025)
  2. WordPress Developer Resources – remove_menu_page()
  3. Medium – WordPress Admin Menu Editor: A Custom Coder’s Guide (Nov 2025)
  4. WP Code Tips – How to Remove Unused Menu Items from WordPress Dashboard (Sep 2025)
  5. Liquid Web – How to Remove Customize From WordPress Admin Menu
  6. CodeCanyon – WordPress Hide Admin Menu Plugin (Dec 2025)
  7. Insight Dezign – ID Admin Menu Customizer (Feb 2026)
  8. DeeWP – How to Hide Admin Menu Items in WordPress by User Role (Feb 2026)

Các câu hỏi thường gặp

Ẩn admin menu có ảnh hưởng đến SEO của website không?

Không. Admin menu chỉ hiển thị trong trang quản trị WordPress (/wp-admin/), không ảnh hưởng gì đến frontend — nơi Google bot thu thập dữ liệu. Ẩn menu hoàn toàn không tác động đến SEO.

Có nên ẩn menu Dashboard không?

Tùy trường hợp. Với khách hàng không chuyên, ẩn Dashboard có thể khiến họ thấy bối rối khi đăng nhập. Thay vào đó, bạn nên ẩn các menu nguy hiểm hơn như Plugins, Theme Editor, Settings. Dashboard thường hữu ích vì hiển thị tổng quan website.

Code ẩn menu có bị mất khi cập nhật WordPress không?

Không, code trong functions.php không bị ảnh hưởng bởi cập nhật WordPress core. Tuy nhiên, nếu code nằm trong theme và bạn cập nhật theme, code sẽ bị ghi đè. Vì vậy, luôn dùng child theme hoặc tạo plugin tùy chỉnh riêng để giữ code an toàn qua mọi bản cập nhật.

Làm sao tìm slug của menu plugin?

Cách nhanh nhất: mở trình duyệt, click chuột phải vào menu của plugin, chọn “Inspect”, tìm thuộc tính href của thẻ <a>. Chuỗi cuối trong URL chính là slug. Ví dụ: /wp-admin/admin.php?page=wc-settings → slug là wc-settings.

Plugin ẩn admin menu có làm chậm website không?

Hầu hết plugin ẩn admin menu rất nhẹ, gần như không ảnh hưởng đến tốc độ frontend. Tuy nhiên, dùng code snippet trong functions.php là cách nhẹ nhất vì không cần tải thêm file PHP hay JavaScript. Nếu dùng plugin, chọn plugin tối ưu tốt và chỉ cài plugin cần thiết.

Khách hàng có thể khôi phục menu đã ẩn không?

Nếu khách hàng là Administrator, họ có thể chỉnh sửa file functions.php hoặc cài plugin để hiện lại menu. Vì vậy, nếu bạn muốn khóa hoàn toàn quyền truy cập, cần kết hợp thêm kiểm tra capability ở cấp độ trang (xem mục “Lưu ý bảo mật” bên trên) hoặc dùng plugin hỗ trợ chặn URL.

Có thể ẩn menu cho một người dùng cụ thể thay vì theo vai trò không?

Có. Thay vì dùng current_user_can('role'), bạn có thể dùng wp_get_current_user() để kiểm tra username cụ thể:

$current_user = wp_get_current_user();
if ( $current_user->user_login === 'khach_hang_abc' ) {
    remove_menu_page( 'tools.php' );
    remove_menu_page( 'plugins.php' );
}


Bạn đang tìm kiếm giải pháp bàn giao website WordPress chuyên nghiệp cho khách hàng? VietnamTutor cung cấp dịch vụ website trọn gói — từ thiết kế, phát triển đến tối ưu hóa dashboard cho người dùng cuối.

Anthony Nguyễn

Cây bút chính tại VietnamTutor

Bài viết cùng chuyên mục

Quản trị website và Quản lý website: Khác nhau thế nào? Phân biệt chi tiết 2026

Quản trị website và Quản lý website khác nhau thế nào? Bài viết giải thích chi tiết sự khác biệt giữa quản trị (kỹ thuật) và

WordPress 7.0: Tổng Quan Bản Cập Nhật Lớn Nhất Năm 2026

WordPress 7.0 ra mắt ngày 9/4/2026 với AI integration, Real-time Collaboration, và hàng loạt cải tiến admin. Tìm hiểu tất cả tính năng mới và cách

Bảo Mật WordPress Toàn Diện 2026: 10 Bước Thực Chiến Chống Hacker

Hướng dẫn bảo mật WordPress toàn diện 2026: 10 bước thực chiến giúp website chống lại 99% cuộc tấn công từ plugin lỗi thời, brute-force đến

Trang trí Giáng Sinh cho Website WordPress

Biến website WordPress thành không gian Giáng Sinh ấm áp, lung linh! Mẹo trang trí ảnh, hiệu ứng tuyết rơi, nhạc nền tối ưu, đảm bảo

King Addons for Elementor: Vá ngay lỗ hổng admin WordPress!

Lỗ hổng nghiêm trọng CVE-2025-8489 trong King Addons for Elementor cho phép tin tặc chiếm quyền admin WordPress. Cập nhật ngay để bảo vệ website của

Hướng dẫn đăng nhập WordPress: Kiểm soát website dễ dàng và an toàn

Bạn muốn quản lý website WordPress? Hướng dẫn này sẽ chỉ bạn cách đăng nhập WordPress nhanh chóng, an toàn, xử lý các vấn đề thường

Xóa Schema Sản Phẩm WooCommerce: Hướng Dẫn Chi Tiết 2026

Hướng dẫn xóa schema sản phẩm do WooCommerce tự tạo ra để tránh trùng lặp với plugin SEO. Bao gồm code snippet và checklist kiểm tra