Editörlerime menüyü değiştirme yetkisi vermek istiyorum, bu yapılabilir mi?
Görünüm sekmesi bir seçenek olarak görünmüyor, öyle yapabilir miyim?
Editörlerime menüyü değiştirme yetkisi vermek istiyorum, bu yapılabilir mi?
Görünüm sekmesi bir seçenek olarak görünmüyor, öyle yapabilir miyim?
Yanıtlar:
bunu temanıza ekleyin 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
Sadece ve daha iyiif !$role_object->has_cap('edit_theme_options')
EDIT: WP 4.9 için güncelleme ve sadece Editör için menü öğelerini gizleme
Kullanıcılarınızın gezinti menüsünü değiştirebilmelerini, ancak görünümdeki diğer seçenekleri değiştirmemelerini istiyorsanız: bunu kullanın.
// Do this only once. Can go anywhere inside your functions.php file
$role_object = get_role( 'editor' );
$role_object->add_cap( 'edit_theme_options' );
Yönetici kodunuzu yeniledikten sonra bu kodun tamamını yorumlayabilirsiniz, çünkü yukarıdaki kod veritabanında kalıcı değişiklikler yapacaktır.
Artık editörlerin görebileceği tüm seçenekler mevcut. Bunun gibi diğer seçenekleri de gizleyebilirsiniz:
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');
İşlevdeki son 3 satır hide_menu()
, temam için özel tema. İkinci parametreyi, gizlemek istediğiniz alt menüye tıklayarak yönetici panelinde bulabilirsiniz. URL’niz şunun gibi olacaktır: example.com/wp-admin/themes.php?page= yiw_panel
Yani, bu örnekte, remove_submenu_page()
işlev için ikinci parametreyiw_panel
Yönetici menü yapısına baktığımda , nav-menus.php
bağlantının kabiliyete bağlıedit_theme_options
olduğu görülüyor . Editör rolünü bu özelliği içerecek şekilde değiştirebilir misiniz? Bu aynı zamanda onlara widget düzenleme seçeneği verirdi , bunun bir sorun olup olmadığını bilmiyorum? Tüm Ajax menüleri bu özellik tarafından sınırlandırılmıştır, bu yüzden menüleri düzenlemek için yönetici menü özelliğinin değiştirilmesi muhtemelen çalışmaz.
instal eklentisi "Kullanıcı Rolü Düzenleyicisi" - Switch edit_theme_options ON - eklentiyi yükle Yönet - Editörler için "Widgets" ve "Tema Değiştir";)
Menünüzün bu şekilde çalışacağını öğrendim: "Eklenti" Kullanıcı Rolü Düzenleyicisi "ve orada editör rolü ve diğer koşulları da düzenleyebilirsiniz. Edit_theme_options AÇIK duruma getirin. Ama şimdi: "menu" - "themes" altından "widget" ifadesini göreceksiniz. Benim için: "Menu" ye (editör olarak) tıkladıktan sonra dolu seçenekleri görmedim ama boş. Böylece "User Role Editor" eklentisini devre dışı bıraktım ve "menu" için doldurulmuş seçenekler doğru görünüyor. "User Role Editor" eklentisinin devre dışı bırakılmasının aktif editör için şart olmaya devam ettiğini unutmayın! Benim için iyi, belki sana da yardımcı olur