Saya ingin membuat kemampuan khusus untuk mengakses antarmuka plugin saya.
- Haruskah plugin mengelola menambahkan kemampuan ini ke semua akun administrator saat aktivasi?
- Jika demikian: Apakah WordPress mengelola penambahan kemampuan untuk semua administrator sub blog dan administrator super dalam instalasi multisite, atau apakah fungsi itu perlu ditangani oleh plugin?
Jawaban:
Hapus apa yang Anda tambahkan
Pertama, pastikan bahwa semua yang Anda tambahkan pada aktivasi juga akan dihapus saat dihapus . Saya mendapat tutorial singkat termasuk kode contoh untuk Anda.
Uji dengan plugin kecil:
Saya benar-benar tidak tahu banyak tentang MU, tetapi sejauh yang saya tahu, objek peran bersifat global di semua blog. Coba saja plugin kecil ini dan lihat apa yang bisa Anda dapatkan:
Menambah Kemampuan
Catatan: Anda dapat menambahkan kemampuan ke peran tanpa memberikan akses ke peran - cukup setel argumen kedua
$grant = false;
. Ini memungkinkan pengguna tunggal yang masuk daftar putih dengan hanya menambahkan batasan termasuk argumen terakhir sebagai benar.sumber
Untuk plugin yang saat ini saya kerjakan, saya ingin memberikan / membatasi akses ke pengaturan plugin (yaitu, halaman menu admin yang sesuai) pada basis per peran .
Oleh karena itu, saya harus menambahkan plugin khusus
capability
untukuser roles
.Sayangnya, jawaban kaiser tampaknya tidak berfungsi lagi, jadi saya meluangkan waktu mencoba mencari cara untuk mengizinkan fungsi yang disebutkan di atas.
Jadwal
Sebelum saya membagikan kode saya dengan Anda, berikut ini semuanya, dalam teks biasa:
THE_NEW_CAP
ke peran yang memiliki kemampuan bawaan tertentuBUILT_IN_CAP
(dalam kasus saya:)edit_pages
.Kode
Dan inilah daftar di atas yang diubah menjadi kode:
»Menyiapkannya
»Menggunakannya
»Membersihkannya
Catatan: Tolong jangan gunakan kemampuan huruf besar. Ini hanya untuk keterbacaan.
sumber
get_editable_roles()
untuk mengambil peran yang ingin Anda edit. Anda akan merusak plugin jika tidak.Ini bekerja untuk saya:
sumber