Eu configurei um site WordPress para um cliente. O cliente tem a função de editor, no entanto, instalei o plug - in Membros e dei ao cliente a capacidade de adicionar novos usuários ao administrador do WP. Isso está funcionando muito bem.
A pergunta que tenho é que gostaria que o cliente pudesse criar um novo usuário, como nas funções de Colaborador, Assinante, Editor e Autor, mas NÃO Administrador. Os novos usuários criados pelo cliente não devem ter a função de administrador. É possível ocultar essa opção de alguma forma?
Obrigado Vayu
Respostas:
Na verdade, é bem fácil. Você precisa filtrar
map_meta_caps
e impedir que os editores criem / editem administradores e remova a função de administrador da matriz 'funções editáveis'. Esta classe, como um plug-in ou no arquivo functions.php do seu tema, faria isso:EDITAR
Ok, então dei uma olhada no porquê de permitir a exclusão do usuário. Parece que delete_user é tratado de maneira ligeiramente diferente de edit_user; Eu modifiquei o método map_meta_cap para contornar isso. Eu testei no 3.0.3 e isso impedirá que ninguém, exceto administradores, exclua, edite ou crie um administrador.
EDIT 2
Atualizei o código para refletir a resposta de @ bugnumber9 abaixo. Por favor, dê a essa resposta um voto positivo!
fonte
Apesar de ter aproximadamente 7 anos, esse segmento pode ser pesquisado facilmente no Google e ainda fornece uma solução funcional. Quero dizer o código fornecido por @John P Bloch.
Dito isto, no PHP 7, ele produz um erro não crítico (PHP descontinuado) da seguinte maneira:
Para corrigir isso, basta substituir esta peça:
com isso:
Isto resolverá o problema.
fonte
Eu estava procurando uma solução em que o Editor pudesse editar apenas menus E criar / editar usuários sem precisar de um plug-in. Então acabei fazendo isso para aqueles que estão interessados.
fonte
A solução de John P Blochs ainda funciona bem, mas eu pensei em colocar meu pequeno filtro para 'map_meta_cap' também. Apenas um pouco mais curto e limpo, pelo menos para os meus olhos;)
fonte