Filter ini memungkinkan Anda untuk memperpanjang itu map_meta_cap()
fungsi . Fungsi ini dipanggil olehWP_User->has_cap()
untuk mengubah kemampuan meta menjadi satu atau lebih kemampuan primitif .
Misalnya, Anda ingin tahu apakah pengguna saat ini harus diizinkan untuk mengedit pos saat ini, yang edit_post
meta kemampuan . Ini tergantung pada beberapa faktor: apakah pengguna pembuat posting? Apakah kiriman sudah diterbitkan? Apakah pos itu ditandai sebagai pribadi? Kemampuan primitif yang edit_posts
, edit_published_posts
, edit_others_posts
dan edit_private_posts
: Anda dapat menetapkan ini untuk peran pengguna . map_meta_cap()
memeriksa penulis dan status kiriman dan mengembalikan kumpulan kemampuan primitif yang benar yang harus dimiliki pengguna ini untuk memungkinkan pengeditan kiriman (jika kiriman ditulis oleh orang lain dan diterbitkan, kiriman akan kembali array('edit_others_posts', 'edit_published_posts')
, sehingga pengguna harus memiliki kedua kemampuan untuk terus).
Menambahkan ide ini dari kemampuan meta dan kemampuan primitif memungkinkan Anda untuk menjaga WP_User
kelas dasar bebas dari pengetahuan tentang posting dan status posting dan apa pun, dan hanya fokus pada kemampuan. Konversi sebenarnya dalam fungsi eksternal map_meta_cap()
,.
Filtermap_meta_cap
memungkinkan Anda untuk memperluas fungsionalitas, misalnya saat menggunakan posting khusus. Saya percaya dukungan dasar diberikan jika Anda menetapkan capabilities
argumen register_post_type
, tetapi artikel yang disebutkan oleh Justin Tadlock dan plugin Prospress memberikan contoh lengkap tentang ini. Tetapi Anda dapat menyesuaikannya untuk mengubah sistem kapabilitas sepenuhnya, jika diinginkan.