Thêm/xóa quyền user role WordPress

5 tháng ago, WordPress Plugin, Views
Thêm/xóa quyền user role WordPress

Giới thiệu về User Roles trong WordPress

WordPress sử dụng hệ thống “User Roles” (vai trò người dùng) để quản lý quyền truy cập và khả năng thực hiện các hành động khác nhau trên trang web của bạn. Mỗi vai trò được gán một tập hợp các quyền cụ thể, cho phép người dùng thực hiện các công việc được phép và ngăn chặn họ truy cập vào các khu vực hoặc chức năng mà họ không được phép.

Hiểu rõ và quản lý hiệu quả các vai trò người dùng là rất quan trọng để duy trì tính bảo mật và hoạt động trơn tru của trang web WordPress của bạn. Việc cấp quyền phù hợp cho mỗi người dùng giúp tránh các sai sót do người dùng không có kinh nghiệm gây ra, đồng thời bảo vệ dữ liệu và nội dung quan trọng.

WordPress cung cấp năm vai trò người dùng mặc định:

  • Administrator (Quản trị viên)
  • Editor (Biên tập viên)
  • Author (Tác giả)
  • Contributor (Người đóng góp)
  • Subscriber (Người đăng ký)

Các Vai Trò Người Dùng Mặc Định của WordPress

WordPress đi kèm với một số vai trò người dùng mặc định, mỗi vai trò có một tập hợp các quyền riêng. Việc hiểu rõ các vai trò này là rất quan trọng trước khi bạn bắt đầu thêm hoặc xóa quyền.

  • Administrator (Quản trị viên): Đây là vai trò mạnh nhất, có toàn quyền kiểm soát trang web. Quản trị viên có thể thực hiện mọi thao tác, bao gồm thêm, xóa và chỉnh sửa người dùng, cài đặt plugin và theme, thay đổi cài đặt hệ thống và quản lý nội dung.
  • Editor (Biên tập viên): Biên tập viên có thể quản lý tất cả các bài viết (posts), trang (pages), nhận xét (comments) và danh mục (categories) trên trang web, kể cả những nội dung được tạo bởi người dùng khác.
  • Author (Tác giả): Tác giả chỉ có thể tạo, chỉnh sửa và xuất bản các bài viết của riêng họ. Họ không thể chỉnh sửa bài viết của người khác.
  • Contributor (Người đóng góp): Người đóng góp có thể viết bài viết mới, nhưng họ không thể xuất bản chúng. Bài viết của họ sẽ cần được xem xét và xuất bản bởi một biên tập viên hoặc quản trị viên.
  • Subscriber (Người đăng ký): Người đăng ký chỉ có thể xem hồ sơ của họ và thay đổi mật khẩu. Họ không có quyền truy cập vào bất kỳ phần quản trị nào khác của trang web.

Việc sử dụng các vai trò mặc định này một cách thích hợp có thể giúp bạn phân chia công việc và kiểm soát quyền truy cập một cách hiệu quả.

Thêm Quyền (Capabilities) cho User Role

Đôi khi, bạn có thể cần thêm các quyền bổ sung cho một vai trò người dùng hiện có. Ví dụ: bạn có thể muốn cho phép một Tác giả tải lên các tệp tin media, điều mà mặc định họ không thể làm.

Có một số cách để thêm quyền cho một vai trò người dùng:

  • Sử dụng Plugin: Đây là cách đơn giản nhất và được khuyến nghị cho người dùng không quen thuộc với việc chỉnh sửa code. Có rất nhiều plugin miễn phí và trả phí có sẵn trên WordPress.org cho phép bạn dễ dàng thêm và xóa quyền cho các vai trò người dùng. Một số plugin phổ biến bao gồm “User Role Editor” và “Members”.
  • Sử dụng Code (functions.php): Nếu bạn cảm thấy thoải mái với việc chỉnh sửa code, bạn có thể sử dụng hàm add_cap() trong tệp functions.php của theme hoặc plugin tùy chỉnh của bạn.

Ví dụ sử dụng plugin User Role Editor:

  1. Cài đặt và kích hoạt plugin User Role Editor.
  2. Truy cập “Users” -> “User Role Editor” trong bảng điều khiển WordPress.
  3. Chọn vai trò người dùng mà bạn muốn chỉnh sửa.
  4. Chọn các quyền (capabilities) bạn muốn thêm hoặc xóa.
  5. Nhấn “Update” để lưu các thay đổi.

Ví dụ sử dụng code (functions.php):


function them_quyen_cho_tac_gia() {
    $role = get_role( 'author' );
    $role->add_cap( 'upload_files' );
}
add_action( 'admin_init', 'them_quyen_cho_tac_gia' );

Đoạn code trên sẽ thêm quyền upload_files cho vai trò Tác giả. Hãy nhớ rằng việc chỉnh sửa trực tiếp tệp functions.php có thể gây ra lỗi nếu bạn không cẩn thận. Nên sử dụng một plugin tùy chỉnh hoặc một child theme để tránh mất các thay đổi khi theme của bạn được cập nhật.

Xóa Quyền (Capabilities) khỏi User Role

Tương tự như việc thêm quyền, bạn cũng có thể muốn xóa các quyền khỏi một vai trò người dùng. Ví dụ: bạn có thể muốn ngăn Biên tập viên tạo người dùng mới, một quyền mà họ có theo mặc định.

Các phương pháp để xóa quyền cũng tương tự như khi thêm quyền:

  • Sử dụng Plugin: Các plugin như User Role Editor cũng cho phép bạn dễ dàng xóa quyền khỏi các vai trò người dùng.
  • Sử dụng Code (functions.php): Bạn có thể sử dụng hàm remove_cap() trong tệp functions.php.

Ví dụ sử dụng plugin User Role Editor:

  1. Truy cập “Users” -> “User Role Editor” trong bảng điều khiển WordPress.
  2. Chọn vai trò người dùng mà bạn muốn chỉnh sửa.
  3. Bỏ chọn các quyền (capabilities) bạn muốn xóa.
  4. Nhấn “Update” để lưu các thay đổi.

Ví dụ sử dụng code (functions.php):


function xoa_quyen_tao_nguoi_dung_khoi_bien_tap_vien() {
    $role = get_role( 'editor' );
    $role->remove_cap( 'create_users' );
}
add_action( 'admin_init', 'xoa_quyen_tao_nguoi_dung_khoi_bien_tap_vien' );

Đoạn code trên sẽ xóa quyền create_users khỏi vai trò Biên tập viên. Lưu ý rằng bạn nên cẩn thận khi xóa các quyền quan trọng, vì điều này có thể ảnh hưởng đến chức năng của trang web của bạn.

Tạo User Role Tùy Chỉnh (Custom User Role)

Ngoài việc chỉnh sửa các vai trò người dùng mặc định, bạn cũng có thể tạo các vai trò người dùng tùy chỉnh để phù hợp với nhu cầu cụ thể của trang web của bạn. Điều này đặc biệt hữu ích nếu bạn cần một vai trò có một tập hợp các quyền rất cụ thể.

Bạn có thể tạo các vai trò người dùng tùy chỉnh bằng:

  • Sử dụng Plugin: Các plugin như User Role Editor và Members cho phép bạn dễ dàng tạo các vai trò người dùng tùy chỉnh và gán các quyền cho chúng.
  • Sử dụng Code (functions.php): Bạn có thể sử dụng hàm add_role() trong tệp functions.php.

Ví dụ sử dụng plugin User Role Editor:

  1. Truy cập “Users” -> “User Role Editor” trong bảng điều khiển WordPress.
  2. Nhấn vào nút “Add Role”.
  3. Nhập ID vai trò (ví dụ: content_manager) và tên hiển thị (ví dụ: “Content Manager”).
  4. Chọn một vai trò để sao chép các quyền từ (hoặc chọn “None”).
  5. Nhấn “Add Role”.
  6. Chọn vai trò mới được tạo và thêm/xóa các quyền theo nhu cầu.
  7. Nhấn “Update” để lưu các thay đổi.

Ví dụ sử dụng code (functions.php):


function tao_vai_tro_quan_ly_noi_dung() {
    add_role(
        'content_manager',
        'Content Manager',
        array(
            'read'         => true,  // Cho phép đọc
            'edit_posts'   => true,  // Cho phép chỉnh sửa bài viết của riêng họ
            'publish_posts' => false, // Không cho phép xuất bản bài viết
            'upload_files' => true,  // Cho phép tải lên tệp tin
        )
    );
}
add_action( 'after_switch_theme', 'tao_vai_tro_quan_ly_noi_dung' );

Đoạn code trên sẽ tạo một vai trò mới có tên “Content Manager” với một số quyền nhất định. Hàm after_switch_theme đảm bảo rằng vai trò được tạo khi theme được kích hoạt. Lưu ý rằng bạn nên sử dụng hook này thay vì admin_init để đảm bảo vai trò được tạo chỉ một lần.

Xóa User Role Tùy Chỉnh

Nếu bạn không còn cần một vai trò người dùng tùy chỉnh nữa, bạn có thể xóa nó. Tuy nhiên, hãy cẩn thận khi xóa vai trò, vì điều này có thể ảnh hưởng đến những người dùng đã được gán cho vai trò đó.

Bạn có thể xóa một vai trò người dùng tùy chỉnh bằng:

  • Sử dụng Plugin: Các plugin như User Role Editor cho phép bạn xóa các vai trò người dùng tùy chỉnh.
  • Sử dụng Code (functions.php): Bạn có thể sử dụng hàm remove_role() trong tệp functions.php.

Ví dụ sử dụng plugin User Role Editor:

  1. Truy cập “Users” -> “User Role Editor” trong bảng điều khiển WordPress.
  2. Chọn vai trò người dùng tùy chỉnh mà bạn muốn xóa.
  3. Nhấn vào nút “Delete Role”.
  4. Xác nhận việc xóa vai trò.

Ví dụ sử dụng code (functions.php):


function xoa_vai_tro_quan_ly_noi_dung() {
    remove_role( 'content_manager' );
}
add_action( 'after_switch_theme', 'xoa_vai_tro_quan_ly_noi_dung' );

Đoạn code trên sẽ xóa vai trò “Content Manager”. Trước khi xóa vai trò, hãy đảm bảo rằng bạn đã gán tất cả người dùng hiện có của vai trò đó cho một vai trò khác.

Lưu Ý Quan Trọng

Quản lý quyền người dùng là một phần quan trọng của việc bảo mật và duy trì trang web WordPress của bạn. Hãy luôn cẩn thận khi thêm, xóa hoặc chỉnh sửa các quyền. Dưới đây là một số lưu ý quan trọng:

  • Sao lưu trang web của bạn: Trước khi thực hiện bất kỳ thay đổi nào đối với vai trò người dùng hoặc quyền, hãy sao lưu toàn bộ trang web của bạn, bao gồm cả cơ sở dữ liệu. Điều này sẽ cho phép bạn khôi phục trang web của mình nếu có sự cố xảy ra.
  • Sử dụng child theme: Khi chỉnh sửa code, hãy sử dụng child theme để tránh mất các thay đổi khi theme chính của bạn được cập nhật.
  • Kiểm tra kỹ lưỡng: Sau khi thực hiện bất kỳ thay đổi nào, hãy kiểm tra kỹ lưỡng để đảm bảo rằng các quyền hoạt động như mong đợi và không gây ra bất kỳ sự cố nào.
  • Cân nhắc sử dụng plugin: Đối với người dùng không quen thuộc với việc chỉnh sửa code, nên sử dụng các plugin đáng tin cậy để quản lý vai trò người dùng.

Bằng cách tuân thủ các hướng dẫn này, bạn có thể quản lý hiệu quả các vai trò người dùng trên trang web WordPress của mình và đảm bảo tính bảo mật và hoạt động trơn tru của nó.