Saya ingin dapat memberikan editor saya kekuatan untuk mengubah menu, dapatkah ini dilakukan?
Tab tampilan sepertinya tidak menjadi pilihan sama sekali, bisakah saya membuatnya?
Saya ingin dapat memberikan editor saya kekuatan untuk mengubah menu, dapatkah ini dilakukan?
Tab tampilan sepertinya tidak menjadi pilihan sama sekali, bisakah saya membuatnya?
Jawaban:
tambahkan ini ke tema Anda functions.php
:
// add editor the privilege to edit theme
// get the the role object
$role_object = get_role( 'editor' );
// add $cap capability to this role object
$role_object->add_cap( 'edit_theme_options' );
WP_Role
admin_init
dan hanyaif !$role_object->has_cap('edit_theme_options')
EDIT: perbarui untuk WP 4.9 & hanya menyembunyikan item menu untuk Editor
Jika Anda ingin pengguna Anda dapat mengubah menu navigasi, tetapi bukan pilihan lain dalam tampilan: gunakan ini
// Do this only once. Can go anywhere inside your functions.php file
$role_object = get_role( 'editor' );
$role_object->add_cap( 'edit_theme_options' );
Anda dapat mengomentari seluruh kode ini setelah Anda me-refresh panel admin Anda, karena kode di atas akan membuat perubahan terus-menerus ke database.
Anda sekarang memiliki semua opsi di bawah tampilan yang terlihat oleh editor. Anda dapat menyembunyikan opsi lain seperti:
function hide_menu() {
if (current_user_can('editor')) {
remove_submenu_page( 'themes.php', 'themes.php' ); // hide the theme selection submenu
remove_submenu_page( 'themes.php', 'widgets.php' ); // hide the widgets submenu
remove_submenu_page( 'themes.php', 'customize.php?return=%2Fwp-admin%2Ftools.php' ); // hide the customizer submenu
remove_submenu_page( 'themes.php', 'customize.php?return=%2Fwp-admin%2Ftools.php&autofocus%5Bcontrol%5D=background_image' ); // hide the background submenu
// these are theme-specific. Can have other names or simply not exist in your current theme.
remove_submenu_page( 'themes.php', 'yiw_panel' );
remove_submenu_page( 'themes.php', 'custom-header' );
remove_submenu_page( 'themes.php', 'custom-background' );
}
}
add_action('admin_head', 'hide_menu');
3 baris terakhir dalam hide_menu()
fungsi adalah tema khusus untuk tema saya. Anda dapat menemukan parameter kedua dengan mengklik pada submenu yang ingin Anda sembunyikan, di panel admin. URL Anda kemudian akan menjadi seperti: example.com/wp-admin/themes.php?page= yiw_panel
Jadi, dalam contoh ini, parameter kedua untuk remove_submenu_page()
fungsi tersebut adalahyiw_panel
Ketika saya melihat struktur menu admin, tampaknya yang nav-menus.php
link terkait dengan kemampuanedit_theme_options
. Bisakah Anda memodifikasi peran editor untuk menyertakan kemampuan ini? Ini juga akan memberi mereka opsi untuk mengedit widget , saya tidak tahu apakah ini masalah? Semua hal-hal menu Ajax dibatasi oleh kemampuan ini, jadi hanya mengubah kemampuan menu admin untuk mengedit menu mungkin tidak akan berfungsi.
instal plugin "Editor Peran Pengguna" - Alihkan edit_theme_options AKTIF - instal plugin Adminimize - matikan "Widget" dan "Alihkan Tema" untuk Editor;)
Saya telah menemukan, bahwa menu Anda akan bekerja dengan cara ini: instal plugin " User Role Editor " dan di sana Anda dapat mengedit kondisi untuk peran editor dan lainnya juga. Alihkan edit_theme_options AKTIF. Tapi sekarang: Anda akan melihat "menu" -Opsi di bawah "tema", "widget". Bagi saya: Setelah klik ke "menu" (sebagai editor) saya tidak melihat opsi yang diisi tetapi kosong. Jadi saya menonaktifkan plugin "Editor Peran Pengguna" dan opsi yang diisi untuk "menu" muncul dengan benar. Perhatikan bahwa menonaktifkan plugin "Editor Peran Pengguna" tetap merupakan kondisi untuk editor aktif! Baik untuk saya, mungkin itu akan membantu Anda juga