permite que editores editem menus?

43

Eu gostaria de poder conceder aos meus editores o poder de alterar o menu, isso pode ser feito?

A guia de aparência não parece ser uma opção, posso fazer isso?

    
por Mild Fuzz 17.11.2010 / 13:42
fonte

6 respostas

47

adicione isso ao functions.php :

do seu tema
// 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' );
    
por user3474 24.02.2011 / 14:11
fonte
16

EDIT: atualização para WP 4.9 & apenas escondendo itens de menu para o Editor

Se você quiser que seus usuários possam alterar o menu de navegação, mas não as outras opções sob a 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 todo este código 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 sob a aparência visíveis para os editores. Você pode ocultar as outras opções da seguinte forma:

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 na função hide_menu() são específicas do tema para o meu tema. Você pode encontrar o segundo parâmetro clicando no submenu que deseja ocultar, no painel de administração. Seu URL será algo como: example.com/wp-admin/themes.php?page=yiw_panel

Portanto, neste exemplo, o segundo parâmetro para a função remove_submenu_page() será yiw_panel

    
por Jules 16.04.2013 / 16:51
fonte
11

No WordPress 3.8, este seria um código melhor que a resposta aceita atualmente.

/**
 * @var $roleObject WP_Role
 */
$roleObject = get_role( 'editor' );
if (!$roleObject->has_cap( 'edit_theme_options' ) ) {
    $roleObject->add_cap( 'edit_theme_options' );
}
    
por BenFreke 09.01.2014 / 08:39
fonte
4

install plugin "Editor de Função do Usuário" - Switch edit_theme_options ON - instale o plugin Adminimize - desative "Widgets" e "Switch Theme" para Editores;)

    
por user4657 14.04.2011 / 09:51
fonte
3

Quando olho para a estrutura do menu do administrador, parece que o o% O linknav-menus.php está vinculado à capacidade edit_theme_options . Você pode modificar a função de editor para incluir esse recurso? Isso também dá 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, então apenas alterar a capacidade do menu admin para edição de menus provavelmente não funcionará.

    
por Jan Fabry 17.11.2010 / 14:26
fonte
0

Eu descobri que o seu menu funcionará assim: instal plugin " Editor de Funções do Usuário "e lá você pode editar a condição para o papel do editor e outros também. Mude edit_theme_options para ON. Mas agora: você verá a opção "menu" em "temas", "widgets". Para mim: Depois de clicar em "menu" (como editor) eu não vejo as opções preenchidas, mas vazio. Por isso, desativei o plug-in "User Role Editor" e as opções preenchidas para "menu" aparecem corretamente. Observe que a desativação do plug-in "Editor de Função do Usuário" continua sendo uma condição para o editor ativo! Bom pra mim, talvez te ajude também

    
por janoo 05.01.2011 / 13:54
fonte

Tags