Conceder acesso do editor à barra lateral

15

Quero dar à função de editor acesso para editar a barra lateral e seu conteúdo. Eu tenho um widget de texto lá e, para editar esse widget de texto, o usuário precisa ser um administrador - isso é péssimo. Como concedo permissão à Função de Editor que lhe dará acesso para editar a barra lateral?

Howdy_McGee
fonte
Isso pode estar relacionado: wordpress.stackexchange.com/questions/13413/…
Elliott
Parece ser o tipo de coisa que estou procurando, mas não entendo o código. Parece que ele está criando um novo usuário e atribuir papéis em vez de editar um usuário existente
Howdy_McGee

Respostas:

21

O edit_theme_optionsrecurso deve permitir que o usuário edite a barra lateral conforme descrito nesta página: http://codex.wordpress.org/Appearance_Widgets_SubPanel

Código a ser adicionado ao functions.php

   $role = get_role('editor'); 
   $role->add_cap('edit_theme_options');

Editar:

Isso deve funcionar para impedir que o editor acesse temas ou menus

function custom_admin_menu() {

    $user = new WP_User(get_current_user_id());     
    if (!empty( $user->roles) && is_array($user->roles)) {
        foreach ($user->roles as $role)
            $role = $role;
    }

    if($role == "editor") { 
       remove_submenu_page( 'themes.php', 'themes.php' );
       remove_submenu_page( 'themes.php', 'nav-menus.php' ); 
    }       
}

add_action('admin_menu', 'custom_admin_menu');

Não tive chance de testar isso, mas apenas os remove do menu em que eles ainda podem acessá-los digitando o URL diretamente.

Elliott
fonte
Isso funciona como um encanto, mas como impedir que eles acessem menus ou temas?
Howdy_McGee
Veja minha resposta editada.
22711 Elliott
Erro fatal: Chame a função indefinida remove_menu_page () - Também não estou preocupado com o fato de eles digitarem por URL. Realmente duvido que alguém seja tão malicioso e mesmo assim são apenas temas e menus. E não posso marcar sua postagem com +1! Obrigado!
Howdy_McGee
Desculpe, o código errado foi adicionado, remove_submenu_pageembora você ainda não deva ter recebido o erro fatal. Eu editei minha resposta e testei e tudo funciona bem para mim?
21711 Elliott
1
Ah, seria por isso que então só era suportado desde 3.1.0, não tive bugs desde a atualização ... Eu sempre sugiro atualizar para a versão mais recente para ajudar a mantê-la segura.
22711 Elliott
1

Se você quiser configurar o mais fácil possível, use o plug-in Membros. O recurso que você precisará adicionar é 'edit_theme_options'. Esteja ciente de que isso concederá mais do que apenas a área de widgets, isso também concederá ao editor acesso a todo o menu Aparência. Veja aqui

http://wordpress.org/extend/plugins/members/

Se você quiser fazer isso programaticamente, precisará usar add_cap ().

$editor = get_role('editor');
$editor->add_cap('edit_theme_options');

Você pode jogar esse código em seu próprio plugin e pronto. Ou coloque-o em functions.php .

eddiemoya
fonte
E se alguém estiver usando o Editor de Função de Usuário bastante popular, você pode selecionar 'Editar Opções de Tema' / 'editar_a_meus_opções' também.