Tenho certeza de que entendo as funções e os recursos configurados no WordPress: recursos granulares, agrupados em funções que podem ser atribuídas aos usuários. O código deve verificar os recursos granulares, não os papéis (porque os recursos de papéis específicos podem mudar). As funções não são necessariamente hierárquicas (embora as funções padrão sejam).
Existe alguma maneira de atribuir várias funções aos usuários? Como alternativa, ter um número de grupos de recursos e associar um ou mais grupos a um usuário? Da maneira como meu site funciona, há várias responsabilidades óbvias: atualizar páginas da Web, moderar fóruns, atualizar o calendário de eventos e assim por diante. Cada responsabilidade possui um grupo de recursos necessários para executar as tarefas associadas a ela. Gostaria de permitir que um usuário execute uma ou mais responsabilidades. Assim, o usuário A pode atualizar as páginas da web e o calendário de eventos, mas não modera os fóruns (não é muito diplomático o suficiente), mas o usuário B pode moderar os fóruns, atualizar o calendário de eventos, mas não é permitido nas páginas da web.
Além de definir um papel para cada combinação possível de responsabilidades, existe alguma maneira de fazer isso?
fonte
Respostas:
A falta de várias funções me irrita há muito tempo, já que a classe WP_User subjacente suporta várias funções. Eu até considerei procurar uma solução de software alternativa. @ lpryor - depois de ler sua postagem, fiquei motivado a implementá-la eu mesmo.
Demorou um número surpreendentemente curto de linhas para fazer, embora eu tenha tido que hackear o arquivo users.php desde que fiquei com preguiça de criar um plugin separado para fazer isso por mim. Claramente, esta é a maneira errada de fazê-lo; se eu estiver motivado o suficiente no futuro, posso tentar fazê-lo corretamente.
Se você não se importa em poder atualizar para a versão mais recente do Wordpress (o que você deve) - você pode implementar várias funções com os trechos de código abaixo. Por favor, tenha em mente que eu não sou um especialista em wordpress. Acabei de abrir os arquivos relevantes e fiz as alterações sem tentar entender todas as implicações do que estava fazendo. O código parece razoável para mim, mas eu não confiaria nele com a minha vida.
(Estou usando o 3.2 para que seus números de linha possam variar) Na classe-wp-users-list-table.php, imediatamente antes da linha 150, adicione alguns como os seguintes:
então mude a função current_account para algo parecido com isto
}
Agora em users.php Comente as linhas 71-76
Substitua o set_role na linha 83 por add_role
Na linha 92, adicione o seguinte (esta é apenas uma cópia e colagem levemente editada da ação de promoção - não verifiquei se o recurso promover_usuário é apropriado para remover funções)
Na linha 370, adicione o seguinte
fonte
O plug-in Editor de Função do Usuário lida com várias funções para um usuário.
Uma vez instalado, Usuários> em cada usuário é a opção Recursos. O URE trata a primeira função do WP como "função principal" e permite adicionar "outras funções".
fonte
Eu uso o plugin Members junto com recursos personalizados criados.
Você não pode atribuir várias funções a uma pessoa, mas pode criar quaisquer funções e especificar quais recursos essa função possui.
Em tempaltes, você pode usar algo como current_user_can () .
fonte