Hướng dẫn cài đặt và sử dụng Rank Math SEO

Hôm nay chúng ta sẽ xem xét các quyền của người dùng trong phạm vi plugin của bạn. Cụ thể, tôi sẽ thảo luận về những gì bạn nên sử dụng để xác định ai có thể xem các menu quản trị khác nhau của plugin của bạn.

Giải pháp cho một vấn đề lộn xộn

Tôi tình cờ thấy sự phức tạp của quyền người dùng khi làm việc trên một cài đặt nhiều trang của WordPress. Chúng tôi đã lưu trữ khoảng 15-20 trang web và đã cài đặt khoảng 30 plugin. Mỗi blog đều có người dùng ở nhiều cấp độ và trách nhiệm khác nhau. Các nhà tuyển dụng của tôi sẽ nhận được yêu cầu hoặc tìm các plugin có chức năng mà họ muốn cung cấp và tôi sẽ tùy thuộc vào việc cài đặt và định cấu hình chúng. Đó là khi tôi gặp phải vấn đề. Thông thường, tôi thấy mình phải sửa đổi các plugin để phù hợp với vai trò người dùng mà chúng tôi đang sử dụng. Sự lộn xộn chủ yếu là do các cách khác nhau mà WordPress cho phép bạn xác định ai có thể xem và sử dụng plugin của bạn.

Đã có lúc, WordPress kết hợp “Cấp độ người dùng”. Có 10 cấp độ, mỗi cấp độ cấp nhiều đặc quyền hơn cho người dùng so với cấp độ cuối cùng. Vì vậy, khá thường xuyên, nhà phát triển sẽ nhắm mục tiêu đến một cấp độ người dùng cụ thể như vậy:

1234567số 89<?php        if (current_user_can('level_10')){        /*do something*/        }     //Or Define a Page    add_menu_page('Page Title', 'Menu Title', 10,'unique-slug','menu_function'); ?>

Đối với những bạn không quen với các hàm WordPress, hàm add_menu_page được định nghĩa là:

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

Bộ mã cụ thể này đang nhắm mục tiêu người dùng cấp 10, đây sẽ là bộ quyền cao nhất. Mặc dù hữu ích trong một số trường hợp, nhưng cấp độ người dùng không cung cấp nhiều tính linh hoạt như tôi thích. May mắn thay, khi WordPress 2.0 được phát hành, chúng tôi đã được cung cấp “Vai trò và Khả năng.” Khả năng thay thế cấp độ người dùng và trong WordPress 3.0, cấp độ người dùng đã trở nên giảm giá trị.

Với cách xác định quyền người dùng mới, chúng tôi đã có thêm các cách nhắm mục tiêu người dùng. Đầu tiên là bởi chính các vai trò. Sử dụng các chức năng tương tự như trên, tôi sẽ minh họa việc nhắm mục tiêu người dùng theo vai trò.

1234567số 89<?php        if (current_user_can('Administrator')){        /*do something*/        }     //Or Define a Page    add_menu_page('Page Title', 'Menu Title', 'Administrator','unique-slug','menu_function'); ?>

Về bản chất, điều này không quá khác so với việc sử dụng Cấp độ người dùng và trong tình huống của tôi, đó không phải là một điều tốt. Với thiết lập nhiều trang web của chúng tôi, vai trò Quản trị viên chỉ được sử dụng bởi những người trong nhà. Vai trò cao nhất mà bất kỳ khách hàng nào được phép là biên tập viên. Nhưng họ vẫn cần có thể thực hiện một số việc trong trang web của họ. Và thật không may, nhiều plugin tôi đã chạy qua vẫn sử dụng cấp độ người dùng hoặc chính vai trò để cấp hoặc từ chối sử dụng plugin của họ. Tuy nhiên, WordPress đã cung cấp một giải pháp mạnh mẽ hơn nhiều cho vấn đề này theo khả năng của chúng.

Khả năng cho phép bạn nhắm mục tiêu người dùng dựa trên những gì họ có thể làm hơn là vai trò mà họ nắm giữ. Hãy xem xét ví dụ dưới đây.

1234567số 89<?php        if (current_user_can('upload_files')){        /*do something*/        }     //Or Define a Page    add_menu_page('Page Title', 'Menu Title', 'upload_files','unique-slug','menu_function'); ?>

Các chức năng hiện kiểm tra xem người dùng có thể upload_files hay không. Nếu các khả năng chưa được thay đổi, điều này cho phép menu hiển thị và chạy mã cho Quản trị viên cấp cao, Quản trị viên, Người chỉnh sửa và Tác giả. Đây là một giải pháp tốt hơn nhiều, vì các khả năng riêng lẻ có thể được thêm vào hoặc xóa khỏi các vai trò trong các chức năng chủ đề.

Bây giờ, trong khi đây là giải pháp tốt nhất cho nhiều trường hợp, tôi muốn tiến thêm một bước nữa. Khi tôi đang phát triển một plugin cho các chức năng không phải quản trị, chẳng hạn như thư viện hoặc plugin chứng thực, tôi muốn cấp quyền truy cập cho người dùng dựa trên khả năng tùy chỉnh được tạo cho plugin. Tôi đã đưa ra một ví dụ về cách làm điều này bên dưới.

1234567<?php    //add_cap($role,$cap,$grant);      add_cap("editor", "my_plugin_cap", true);     add_menu_page('Page Title', 'Menu Title', 'my_plugin_cap','unique-slug','menu_function'); ?>

Như bạn có thể thấy, chúng tôi đang thêm một khả năng có tên “my_plugin_cap” vào vai trò biên tập viên. Sau đó, chúng tôi thêm một trang menu hiển thị cho tất cả người dùng có khả năng này. Điều thú vị là trong plugin, bạn có thể thêm khả năng cho người dùng thích hợp và nếu quản trị viên muốn cấp cho các vai trò khác quyền truy cập, anh ta có thể làm như vậy bằng cách tự thêm khả năng thông qua các chức năng chủ đề. Trong trường hợp của tôi, điều đó có nghĩa là tôi không còn cần phải tự chỉnh sửa các plugin nữa và tôi có thể thoải mái cập nhật chúng mà không phải lo lắng về việc mất các thay đổi mà tôi đã thực hiện.

Tôi hy vọng mẹo này hữu ích cho bạn. Hãy cho tôi biết nếu bạn có bất kỳ câu hỏi hoặc thắc mắc nào trong phần bình luận bên dưới. Chúc bạn lập trình plugin vui vẻ!

5 2 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
2 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
Trang Nguyễn

Bài viết rất hay. Cảm ơn tác giả

ic1Asset 1