Jadi saya mengalami beberapa masalah dengan ini dan saya tidak bisa melihat mengapa. Saya hanya perlu peran khusus yang dapat mengakses blog di bagian belakang.
Saya telah menambahkan jenis posting baru dengan jenis Kemampuan blog
dan peran pengguna baru dengan semua batasan yang akan memungkinkan admin mengakses pengguna untuk menambah / mengedit jenis posting kustom. Ini berfungsi untuk admin dan mereka dapat mengakses jenis posting di bagian belakang. Namun pengguna peran khusus saya tidak bisa masuk ke bagian belakang sama sekali.
Jenis tulisan args of note
"capability_type" => 'blog',
"map_meta_cap" => true,
Mendaftar peran
function add_blog_manager_role(){
add_role(
'blog_manager',
'Blog Manager',
array(
'read' => true,
'edit_posts' => false,
'delete_posts' => false,
'publish_posts' => false,
'upload_files' => true
)
);
}
add_action( 'admin_init', 'add_blog_manager_role', 4 );
Tambahkan Caps
function add_blog_role_caps() {
$roles = array('blog_manager', 'editor','administrator');
foreach($roles as $the_role) {
$role = get_role($the_role);
$role->add_cap( 'read' );
$role->add_cap( 'read_blog');
$role->add_cap( 'read_private_blog' );
$role->add_cap( 'edit_blog' );
$role->add_cap( 'edit_others_blog' );
$role->add_cap( 'edit_published_blog' );
$role->add_cap( 'publish_blog' );
$role->add_cap( 'delete_others_blog' );
$role->add_cap( 'delete_private_blog' );
$role->add_cap( 'delete_published_blog' );
}
}
add_action('admin_init', 'add_blog_role_caps', 5 );
Saya sudah googeling dengan panik mencoba mencari penyebabnya. Saya sudah mencoba dengan bentuk jamak, non jamak, mencoba menambahkan kemampuan ke args jenis posting. Namun saya tidak pernah bisa masuk ke belakang. Saya tidak punya kode lain dalam tema yang mungkin mengeluarkan pengguna dari admin (saya menghapus kode saya sendiri yang menendang mereka saat menguji ini)
Sunting Di sini Anda dapat melihat dump dari kemampuan blog_manager dari database, ada sedikit pengujian BS yang tersisa di sana, tetapi yang seharusnya tidak menghentikan mereka untuk dapat login dari apa yang saya ketahui.
'blog_manager' => array (
'name' => 'Blog Manager',
'capabilities' => array (
'read' => true,
'edit_posts' => false,
'delete_posts' => false,
'publish_posts' => false,
'upload_files' => true,
'read_blog' => true,
'read_private_blog' => true,
'edit_blog' => true,
'edit_others_blog' => true,
'edit_published_blog' => true,
'publish_blog' => true,
'delete_others_blog' => true,
'delete_private_blog' => true,
'delete_published_blog' => true,
'blog' => true,
'read_private_blogs' => true,
'edit_blogs' => true,
'edit_others_blogs' => true,
'edit_published_blogs' => true,
'publish_blogs' => true,
'delete_others_blogs' => true,
'delete_private_blogs' => true,
'delete_published_blogs' => true,
'delete_blogs' => true,
'delete_blog' => true,
),
)
sumber
Jawaban:
Sulit untuk memecahkan masalah kode di atas karena itu hanya bagian dari kode aktual, tetapi inilah plugin minimum yang diperlukan untuk mendaftarkan jenis posting khusus (disebut Contoh) dan peran khusus (Blog Manager) yang memiliki akses ke contoh jenis posting kustom .
Ini juga dapat digunakan sebagai bagian dari file functions.php tema. Cukup gunakan pengaktifan tema dan kait penonaktifan sebagai gantinya.
sumber
Jika Anda setuju dengan plugin daripada Anda dapat menggunakan plugin velow.
https://wordpress.org/plugins/capability-manager-enhanced/
sumber