Respostas:
adicione isso ao seu tema 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
e únicoif !$role_object->has_cap('edit_theme_options')
EDIT: atualização para o WP 4.9 e ocultando apenas itens de menu para o Editor
Se você deseja que seus usuários possam alterar o menu de navegação, mas não as outras opções na aparência: use este
// Do this only once. Can go anywhere inside your functions.php file
$role_object = get_role( 'editor' );
$role_object->add_cap( 'edit_theme_options' );
Você pode comentar esse código inteiro depois de atualizar seu painel de administração, porque o código acima fará alterações persistentes no banco de dados.
Agora você tem todas as opções em aparência visíveis para os editores. Você pode ocultar as outras opções da seguinte maneira:
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');
As últimas 3 linhas da hide_menu()
função são tema específico para o meu tema. Você pode encontrar o segundo parâmetro clicando no submenu que deseja ocultar, no painel do administrador. Seu URL será algo como: example.com/wp-admin/themes.php?page= yiw_panel
Portanto, neste exemplo, o segundo parâmetro para a remove_submenu_page()
função seráyiw_panel
Quando olho para a estrutura do menu do administrador, parece que o nav-menus.php
link está vinculado ao recursoedit_theme_options
. Você pode modificar a função de editor para incluir esse recurso? Isso também daria a eles a opção de editar widgets , não sei se isso é um problema? Todo o material do menu Ajax é restrito por esse recurso, portanto, apenas alterar o recurso do menu do administrador para editar menus provavelmente não funcionará.
plugin de instalação "Editor de Função de Usuário" - Ative edit_theme_options - ative o plugin de instalação Adminimize - desative "Widgets" e "Alternar Tema" para Editores;)
Eu descobri que seu menu funcionará desta maneira: instale o plugin " User Role Editor " e lá você poderá editar a condição da função de editor e outras também. Ative edit_theme_options. Mas agora: você verá a opção "menu" em "temas", "widgets". Para mim: Depois de clicar no "menu" (como editor), não vejo as opções preenchidas, mas vazia. Desativei o plug-in "User Role Editor" e as opções preenchidas para "menu" aparecem corretamente. Observe que a desativação do plugin "User Role Editor" permanece como condição para o editor ativo! Bom para mim, talvez isso também ajude você