sự khác biệt giữa khả năng Vai trò và Meta
Điều đó sẽ tốt hơn để hỏi so sánh Rolevới Capabilities, không chỉ Meta capabilities, mà là một câu trả lời đơn giản:
A Rolexác định một tập hợp các tác vụ mà người dùng được gán vai trò được phép thực hiện.
Capabilities được giao cho Roles
sự khác biệt giữa khả năng của Meta và Primitive?
Khả năng meta
edit_post, read_postvà delete_postđược cho là Meta Capabilitiesbởi vì chúng phụ thuộc vào ngữ cảnh, ví dụ bài đăng đang được chỉnh sửa / đọc / xóa. Điều đó thật vô nghĩa nếu bạn nói, một số người dùng có edit_postkhả năng, bởi vì ai đó sẽ hỏi bạn: cô ấy / anh ấy có thể chỉnh sửa bài đăng nào?
Khả năng nguyên thủy
Đây là những khả năng edit_postskhông phụ thuộc vào bất kỳ bối cảnh nào và là nội tại đối với người dùng. Nếu ai đó có edit_postscapabality, cô ấy / anh ấy có thể chỉnh sửa bài viết.
Khi nào nên sử dụng bộ lọc map_meta_cap ()?
Khi bạn đăng ký loại bài đăng mới bằng cách sử dụng register_post_type
, bạn có một tùy chọn để sử dụng cho capability_typebiết, các khả năng này, tương tự như thế nào? Ở đó bạn chỉ có thể nói post, có nghĩa là khả năng của bạn tương tự như postloại bài đăng.
Bu nếu bạn cần tùy chỉnh nhiều hơn, bạn có thể nói bookhoặc array( 'book', 'books' )(tương tự), ví dụ, để có các khả năng sau:
capabilities' => array(
'edit_post' => 'edit_book',
'read_post' => 'read_book',
'delete_post' => 'delete_book',
'edit_posts' => 'edit_books',
'edit_others_posts' => 'edit_others_books',
'publish_posts' => 'publish_books',
'read_private_posts' => 'read_private_books',
'create_posts' => 'edit_books',
)
Khi sử dụng capability_typenhư một mảng, ví dụ như mảng ('câu chuyện', 'câu chuyện'), phần tử đầu tiên sẽ được sử dụng cho các khả năng số ít và phần tử mảng thứ hai cho các khả năng số nhiều.
Các map_meta_cap()chức năng được gọi bằng WP_User->has_cap()để chuyển đổi một khả năng meta để một hoặc nguyên thủy hơn khả năng.
Ngoài ra còn có một map_meta_captham số register_post_type, thực hiện điều tương tự, khi đăng ký post_type.