Câu trả lời:
Một cách thậm chí còn đơn giản hơn so với @Brady cho bạn thấy là sử dụng current_user_can
:
if ( current_user_can( 'subscriber' ) )
echo "Hi, dear subscriber! Glad seeing you again!";
Ngoài ra còn có một tương đương cho cài đặt MU, được đặt tên current_user_can_for_blog
:
global $blog_id;
if ( current_user_can_for_blog( $blog_id 'subscriber' ) )
echo "Hi, dear subscriber! Glad seeing you again on this blog!";
Khi xem nguồn gốc của các chức năng cho các cài đặt đơn hoặc MU , thì bạn sẽ thấy, cả hai về cơ bản đều dựa vào wp_get_current_user()
và sau đó kiểm tra has_cap
. Bây giờ nếu bạn muốn xem, nắp xuất phát từ đâu, thì WP_User
lớp / đối tượng sẽ vào trò chơi.
Rồi cũng có author_can( $GLOBALS['post'], 'capability' );
. Tất cả các chức năng là bên trong ~/wp-includes/capabilities
ngay bên dưới nhau.
Bây giờ, sự khác biệt giữa current_user_can(_FOR_BLOG)
vàuser_can
đâu?
user_can()
là cái mới hơn (kể từ 3.1), nhưng cần người dùng làm đối tượng. Vì vậy, bạn có thể sử dụng nó trong các trường hợp mà bạn không muốn nhắm mục tiêu người dùng hiện tại, nhưng một số người dùng.current_user_can_*()
là rõ ràng.author_can()
cho phép bạn kiểm tra khả năng chống lại một đối tượng bài. Đối tượng này chỉ có sẵn cho các bài đăng, đã có trong DB. Vì vậy, chủ yếu là cho phép / từ chối quyền truy cập vào các tính năng bài cụ thể.Ý bạn là vậy đúng không?
global $userdata;
get_currentuserinfo();
if ( $userdata->user_level != 0 )//check user level by level ID
{
echo 'User is a not Subscriber';
}
else
{
echo 'User is a Subscriber';
}
Thêm chi tiết về ID cho các cấp độ khác nhau: http://codex.wordpress.org/Roles_and_Capabilities#User_Levels
Ngoài ra còn có hàm current_user_can (), cho phép bạn biểu thị các khả năng cụ thể để linh hoạt hơn. http://codex.wordpress.org/Function_Reference/cien_user_can
To maintain backwards compatibility with plugins that still use the user levels system (although this is very much discouraged), the default Roles in WordPress also include Capabilities that correspond to these levels. User Levels were finally deprecated in version 3.0.
current_user_can()
trang codex AFAIK đã không thay đổi.