perbedaan antara kemampuan Peran dan Meta
Itu akan lebih baik untuk meminta perbandingan Roledengan Capabilities, bukan hanya Meta capabilities, tetapi sebagai jawaban sederhana:
A Rolemendefinisikan satu set tugas yang diberikan pengguna pada peran yang diizinkan untuk dilakukan.
Capabilities ditugaskan untuk Roles
perbedaan antara kemampuan Meta dan Primitive?
Kemampuan meta
edit_post,, read_postdan delete_postdikatakan Meta Capabilitieskarena mereka tergantung pada konteksnya, misalnya tulisan yang sedang diedit / baca / hapus. Itu tidak masuk akal jika Anda mengatakan, beberapa pengguna memiliki edit_postkemampuan, karena seseorang akan bertanya kepada Anda: ia dapat mengedit posting mana?
Kemampuan primitif
Ini adalah kemampuan seperti edit_postsyang tidak bergantung pada konteks apa pun, dan bersifat intrinsik bagi pengguna. Jika seseorang memiliki edit_postskemampuan, dia dapat mengedit posting.
kapan harus menggunakan filter map_meta_cap ()?
Ketika Anda mendaftarkan jenis posting baru menggunakan register_post_type
, Anda memiliki opsi untuk menggunakan capability_typeyang mengatakan, apa kemampuannya, mirip dengan? Di sana Anda bisa saja mengatakan post, artinya kemampuan Anda mirip dengan postjenis posting.
Namun jika Anda memerlukan lebih banyak penyesuaian, Anda dapat mengatakan bookatau array( 'book', 'books' )(sama), misalnya, untuk memiliki kemampuan berikut:
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',
)
Saat menggunakan capability_typesebagai array, misalnya array ('cerita', 'cerita') elemen pertama akan digunakan untuk kemampuan tunggal dan elemen array kedua untuk kemampuan jamak.
The map_meta_cap()fungsi disebut oleh WP_User->has_cap()untuk mengkonversi kemampuan meta untuk satu atau lebih primitif kemampuan.
Ada juga map_meta_capparameter di register_post_type, yang melakukan hal yang sama, pada registrasi post_type.