Filtr ten pozwala na przedłużenie z map_meta_cap()
funkcji . Ta funkcja jest wywoływana przezWP_User->has_cap()
konwersję meta-zdolności do jednej lub więcej prymitywnych możliwości .
Na przykład, chcesz wiedzieć, czy bieżący użytkownik powinien mieć możliwość edycji obecne stanowisko, na edit_post
zdolności meta . Zależy to od niektórych czynników: czy użytkownik jest autorem postu? Czy post jest już opublikowany? Czy post jest oznaczony jako prywatny? Możliwości są prymitywne edit_posts
, edit_published_posts
, edit_others_posts
i edit_private_posts
: można przypisać je do ról użytkowników . map_meta_cap()
sprawdza autora i status posta i zwraca poprawny zestaw pierwotnych możliwości, że ten użytkownik musi pozwolić na edycję postu (jeśli post jest napisany przez kogoś innego i opublikowany, to zwróci array('edit_others_posts', 'edit_published_posts')
, więc użytkownik musi mieć obie możliwości, aby: kontyntynuj).
Dodanie tego pojęcia o meta-zdolnościach i prymitywnych możliwościach pozwala utrzymać WP_User
klasę podstawową wolną od wiedzy na temat postów i statusów postów itp., I po prostu skupić się na możliwościach. Rzeczywista konwersji w funkcji zewnętrznego map_meta_cap()
.
Filtrmap_meta_cap
pozwala rozszerzyć funkcjonalność, na przykład podczas korzystania z niestandardowych postów. Wierzę, że podstawowe wsparcie jest zapewnione, jeśli ustawisz capabilities
argument register_post_type
, ale wspomniany artykuł Justina Tadlocka i wtyczki Prospress dostarcza kompletnych przykładów tego. Ale możesz go dostosować, aby całkowicie odwrócić system możliwości, jeśli chcesz.