Saya cukup yakin saya memahami pengaturan peran dan kapabilitas di WordPress: kapabilitas granular, dikelompokkan bersama dalam peran yang dapat ditetapkan untuk pengguna. Kode harus memeriksa kemampuan granular, bukan peran (karena kemampuan untuk peran tertentu dapat berubah). Peran tidak harus hierarkis (meskipun peran defaultnya adalah).
Apakah ada cara menetapkan beberapa peran kepada pengguna? Atau, memiliki sejumlah grup kemampuan, dan mengaitkan satu atau beberapa grup dengan pengguna? Cara kerja situs saya, ada sejumlah tanggung jawab yang jelas: memperbarui halaman web, memoderasi forum, memperbarui kalender acara, dan sebagainya. Setiap tanggung jawab memiliki sekelompok kemampuan yang diperlukan untuk melakukan tugas-tugas yang terkait dengannya. Saya ingin mengaktifkan pengguna untuk melakukan satu atau lebih tanggung jawab. Jadi pengguna A dapat memperbarui halaman web dan kalender acara tetapi tidak memoderasi forum (hampir tidak cukup bijaksana), tetapi pengguna B dapat memoderasi forum, memperbarui kalender acara, tetapi tidak diizinkan di dekat halaman web.
Pendek mendefinisikan peran untuk setiap kemungkinan kombinasi tanggung jawab, apakah ada cara untuk melakukan ini?
sumber
Jawaban:
Kurangnya peran ganda telah membuat saya kesal sejak lama karena kelas WP_User yang mendasarinya mendukung banyak peran. Saya bahkan mempertimbangkan untuk mencari solusi perangkat lunak alternatif. @ lpryor - setelah membaca posting Anda, saya termotivasi untuk mengimplementasikannya sendiri.
Secara mengejutkan diperlukan beberapa baris untuk dilakukan walaupun saya harus meretas file users.php karena saya terlalu malas untuk membuat plugin terpisah untuk melakukannya untuk saya. Jelas ini adalah cara yang salah untuk melakukannya sehingga jika saya cukup termotivasi di masa depan, saya dapat mencoba melakukannya dengan benar.
Jika Anda tidak peduli untuk dapat meningkatkan ke versi terbaru dari Wordpress (yang seharusnya) - Anda dapat menerapkan beberapa peran dengan potongan kode di bawah ini. Harap diingat bahwa saya bukan ahli wordpress. Saya baru saja membuka file yang relevan dan membuat perubahan tanpa mencoba memahami implikasi penuh dari apa yang saya lakukan. Kode itu tampaknya masuk akal bagi saya tetapi saya tidak akan mempercayainya dengan hidup saya.
(Saya menggunakan 3,2 sehingga nomor baris Anda dapat bervariasi) Di kelas-wp-users-list-table.php sebelum baris 150 tambahkan beberapa seperti berikut:
kemudian ubah fungsi current_account agar terlihat seperti ini
}
Sekarang di users.php Komentari baris 71-76
Ganti set_role di baris 83 dengan add_role
Pada baris 92 tambahkan yang berikut ini (Ini hanyalah copy & paste yang diedit ringan dari tindakan promosi - Saya belum memeriksa untuk memastikan bahwa kemampuan promot_user sesuai untuk menghapus peran)
Pada baris 370 tambahkan berikut ini
sumber
Plugin User Role Editor menangani banyak peran untuk pengguna.
Setelah terinstal, Pengguna> di bawah setiap pengguna adalah opsi Kemampuan. URE memperlakukan peran WP pertama sebagai "peran utama" dan memungkinkan Anda untuk menambahkan "peran lain".
sumber
Saya menggunakan plugin Anggota bersama dengan kemampuan yang dibuat khusus.
Anda tidak dapat menetapkan beberapa peran untuk satu orang, tetapi Anda dapat membuat peran apa pun dan menentukan kemampuan apa yang dimiliki peran tersebut.
Di tempaltes, Anda dapat menggunakan sesuatu seperti current_user_can () .
sumber