Ẩn mục menu không cần thiết WordPress admin

4 tháng ago, WordPress Plugin, Views
Ẩn mục menu không cần thiết WordPress admin

Ẩn Mục Menu Không Cần Thiết Trong WordPress Admin

Giới thiệu

WordPress là một nền tảng CMS (Content Management System) mạnh mẽ và linh hoạt. Tuy nhiên, giao diện quản trị (admin) của WordPress đôi khi có thể trở nên lộn xộn và khó điều hướng, đặc biệt khi cài đặt nhiều plugin. Việc ẩn các mục menu không cần thiết có thể giúp đơn giản hóa giao diện, cải thiện trải nghiệm người dùng và tăng cường bảo mật.

Bài viết này sẽ hướng dẫn bạn các cách khác nhau để ẩn các mục menu không cần thiết trong WordPress admin, từ việc sử dụng code đến sử dụng plugin, đồng thời đưa ra các cân nhắc quan trọng khi thực hiện.

Lợi ích của việc ẩn mục menu không cần thiết

Việc tùy chỉnh giao diện admin bằng cách ẩn các mục menu không cần thiết mang lại nhiều lợi ích:

  • Cải thiện trải nghiệm người dùng: Giao diện gọn gàng, dễ điều hướng giúp người dùng nhanh chóng tìm thấy các chức năng cần thiết.
  • Tăng cường bảo mật: Ẩn các mục menu liên quan đến các tính năng không sử dụng giúp giảm thiểu nguy cơ bị khai thác.
  • Đơn giản hóa giao diện cho khách hàng: Nếu bạn phát triển website cho khách hàng, việc ẩn các mục menu không cần thiết giúp họ tập trung vào các chức năng quan trọng.

Các phương pháp ẩn mục menu WordPress admin

Có nhiều cách để ẩn các mục menu không cần thiết trong WordPress admin. Dưới đây là một số phương pháp phổ biến:

Sử dụng Code (functions.php)

Đây là phương pháp mạnh mẽ và linh hoạt nhất, cho phép bạn kiểm soát hoàn toàn các mục menu cần ẩn. Tuy nhiên, nó đòi hỏi kiến thức về PHP và WordPress hook.

Bạn có thể sử dụng hook admin_menu để can thiệp vào quá trình xây dựng menu admin. Ví dụ, để ẩn mục “Posts” (Bài viết), bạn có thể thêm đoạn code sau vào file functions.php của theme con (child theme):


    function remove_menus(){
      remove_menu_page( 'edit.php' ); // Bài viết
    }
    add_action( 'admin_menu', 'remove_menus' );
  

Tương tự, bạn có thể ẩn các mục menu khác bằng cách thay đổi tham số truyền vào hàm remove_menu_page():

  • edit.php?post_type=page: Trang
  • upload.php: Media
  • edit-comments.php: Bình luận
  • themes.php: Giao diện
  • plugins.php: Plugins
  • users.php: Người dùng
  • tools.php: Công cụ
  • options-general.php: Cài đặt

Lưu ý quan trọng:

  • Luôn sử dụng theme con (child theme) để tránh mất các tùy chỉnh khi cập nhật theme chính.
  • Sao lưu file functions.php trước khi thực hiện bất kỳ thay đổi nào.
  • Kiểm tra kỹ code sau khi thay đổi để đảm bảo không gây ra lỗi.

Sử dụng Plugin

Đây là phương pháp đơn giản và dễ sử dụng hơn, phù hợp cho người dùng không có nhiều kinh nghiệm về code. Có rất nhiều plugin miễn phí và trả phí giúp bạn ẩn các mục menu trong WordPress admin.

Một số plugin phổ biến:

  • Admin Menu Editor: Cho phép bạn ẩn, di chuyển, đổi tên và thay đổi icon của các mục menu.
  • White Label CMS: Cung cấp nhiều tùy chọn để tùy chỉnh giao diện admin, bao gồm cả việc ẩn các mục menu.
  • User Role Editor: Cho phép bạn quản lý quyền hạn của người dùng và ẩn các mục menu dựa trên vai trò người dùng.

Để sử dụng plugin, bạn chỉ cần cài đặt và kích hoạt plugin đó, sau đó truy cập trang cài đặt của plugin để tùy chỉnh các mục menu cần ẩn.

Sử dụng CSS

Mặc dù không phải là phương pháp tối ưu, nhưng bạn có thể sử dụng CSS để ẩn các mục menu. Tuy nhiên, phương pháp này chỉ ẩn giao diện, chứ không thực sự ngăn chặn người dùng truy cập vào các trang đó nếu họ biết URL.

Bạn có thể thêm CSS code sau vào file style.css của theme con hoặc sử dụng plugin tùy chỉnh CSS:


    #adminmenu #toplevel_page_my-plugin-settings {
      display: none !important;
    }
  

Thay thế #adminmenu #toplevel_page_my-plugin-settings bằng selector CSS của mục menu bạn muốn ẩn. Bạn có thể tìm selector CSS bằng cách sử dụng công cụ Inspect Element của trình duyệt.

Cân nhắc khi ẩn mục menu

Trước khi ẩn bất kỳ mục menu nào, bạn cần cân nhắc kỹ lưỡng:

  • Đảm bảo rằng bạn không ẩn các mục menu quan trọng: Hãy kiểm tra kỹ chức năng của từng mục menu trước khi ẩn nó.
  • Cân nhắc vai trò người dùng: Nếu bạn có nhiều người dùng với các vai trò khác nhau, hãy đảm bảo rằng bạn chỉ ẩn các mục menu không liên quan đến vai trò của họ.
  • Ghi lại các thay đổi: Lưu giữ danh sách các mục menu đã ẩn để bạn có thể khôi phục chúng nếu cần thiết.

Ví dụ cụ thể

Ví dụ 1: Ẩn mục “Cập nhật” cho người dùng không phải là quản trị viên.

Bạn có thể sử dụng code sau trong file functions.php của theme con:


    function remove_update_menu() {
      if ( ! current_user_can( 'update_core' ) ) {
        remove_submenu_page( 'index.php', 'update-core.php' );
      }
    }
    add_action( 'admin_menu', 'remove_update_menu', 11 );
  

Ví dụ 2: Ẩn mục “WooCommerce” cho người dùng có vai trò “Shop Manager” trừ quản trị viên.


   function remove_woocommerce_menu() {
	   $user = wp_get_current_user();
	   if ( in_array( 'shop_manager', (array) $user->roles ) && ! current_user_can( 'manage_options' ) ) {
		   remove_menu_page( 'woocommerce' );
	   }
   }
   add_action( 'admin_menu', 'remove_woocommerce_menu', 99 );
   

Kết luận

Ẩn các mục menu không cần thiết trong WordPress admin là một cách hiệu quả để đơn giản hóa giao diện, cải thiện trải nghiệm người dùng và tăng cường bảo mật. Bạn có thể sử dụng code, plugin hoặc CSS để thực hiện việc này. Hãy cân nhắc kỹ lưỡng trước khi ẩn bất kỳ mục menu nào và đảm bảo rằng bạn đã ghi lại các thay đổi để có thể khôi phục chúng nếu cần thiết.