Saya menjadi sangat bingung tentang hal-hal berikut:
- perbedaan antara kemampuan Peran dan Meta,
- perbedaan antara kemampuan Meta dan Primitive,
- kapan harus menggunakan
map_meta_cap()
filter.
Ada banyak situasi, di mana saya menambahkan kemampuan WP yang ada atau kustom untuk WP yang ada atau peran kustom, berharap untuk bekerja di luar kotak dan sebagian besar kali tidak.
Saya melihat bahwa orang menyebutkan tentang map_meta_cap()
filter, tetapi saya tidak dapat menemukan penjelasan yang baik tentang apa yang sebenarnya dilakukannya dan kapan saya harus menggunakannya dan kapan kemampuan akan bekerja di luar kotak.
Saya harap itu masuk akal.
Saya akan sangat menghargai penjelasan atau tautan ke sumber daya yang menjelaskan hal ini dengan baik.
Terima kasih, Dasha
capabilities
user-roles
dashaluna
sumber
sumber
Jawaban:
Itu akan lebih baik untuk meminta perbandingan
Role
denganCapabilities
, bukan hanyaMeta capabilities
, tetapi sebagai jawaban sederhana:A
Role
mendefinisikan satu set tugas yang diberikan pengguna pada peran yang diizinkan untuk dilakukan.Capabilities
ditugaskan untukRoles
Kemampuan meta
edit_post
,,read_post
dandelete_post
dikatakanMeta Capabilities
karena mereka tergantung pada konteksnya, misalnya tulisan yang sedang diedit / baca / hapus. Itu tidak masuk akal jika Anda mengatakan, beberapa pengguna memilikiedit_post
kemampuan, karena seseorang akan bertanya kepada Anda: ia dapat mengedit posting mana?Kemampuan primitif
Ini adalah kemampuan seperti
edit_posts
yang tidak bergantung pada konteks apa pun, dan bersifat intrinsik bagi pengguna. Jika seseorang memilikiedit_posts
kemampuan, dia dapat mengedit posting.Ketika Anda mendaftarkan jenis posting baru menggunakan
register_post_type
, Anda memiliki opsi untuk menggunakancapability_type
yang mengatakan, apa kemampuannya, mirip dengan? Di sana Anda bisa saja mengatakanpost
, artinya kemampuan Anda mirip denganpost
jenis posting.Namun jika Anda memerlukan lebih banyak penyesuaian, Anda dapat mengatakan
book
atauarray( 'book', 'books' )
(sama), misalnya, untuk memiliki kemampuan berikut:Saat menggunakan
capability_type
sebagai 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 olehWP_User->has_cap()
untuk mengkonversi kemampuan meta untuk satu atau lebih primitif kemampuan.Ada juga
map_meta_cap
parameter diregister_post_type
, yang melakukan hal yang sama, pada registrasi post_type.sumber
...If somebody has edit_posts capabality, she/he can edit posts...
tetapi yang / yang posting siapa?