Bộ lọc này cho phép bạn mở rộng các map_meta_cap()
chức năng . Hàm này được gọi bằng cáchWP_User->has_cap()
chuyển đổi một khả năng meta thành một hoặc nhiều khả năng nguyên thủy .
Ví dụ, bạn muốn biết xem người dùng hiện tại nên được phép chỉnh sửa bài viết hiện nay, các edit_post
khả năng meta . Điều này phụ thuộc vào một số yếu tố: người dùng có phải là tác giả của bài viết không? Là bài đã được xuất bản? Là bài được đánh dấu là riêng tư? Các khả năng nguyên thủy là edit_posts
, edit_published_posts
, edit_others_posts
và edit_private_posts
: bạn có thể gán những để vai trò người dùng . map_meta_cap()
kiểm tra tác giả và trạng thái của bài đăng và trả về tập hợp chính xác các khả năng nguyên thủy mà người dùng này phải cho phép chỉnh sửa bài đăng (nếu bài đăng được viết bởi người khác và được xuất bản, nó sẽ trở lại array('edit_others_posts', 'edit_published_posts')
, vì vậy người dùng phải có cả hai khả năng tiếp tục).
Thêm ý tưởng về khả năng meta và khả năng nguyên thủy này cho phép bạn giữ cho WP_User
lớp cơ sở không có kiến thức về bài đăng và trạng thái bài đăng và bất cứ điều gì, và chỉ tập trung vào các khả năng. Việc chuyển đổi thực tế là trong một chức năng bên ngoài , map_meta_cap()
.
Bộ lọcmap_meta_cap
cho phép bạn mở rộng chức năng, ví dụ như khi sử dụng bài viết tùy chỉnh. Tôi tin rằng hỗ trợ cơ bản được cung cấp nếu bạn đặt capabilities
đối số register_post_type
, nhưng bài viết được đề cập bởi Justin Tadlock và plugin Prospress cung cấp các ví dụ đầy đủ về điều này. Nhưng bạn có thể tùy chỉnh nó để hoàn toàn biến hệ thống khả năng, nếu bạn muốn.