Um dos principais recursos do WordPress que é muitas vezes esquecido é que há um número de funções de usuário diferentes disponíveis. Esses papéis de usuário podem ajudar a garantir que apenas as pessoas tenham acesso apenas às áreas de que necessitam e também ajuda a minimizar as chances de qualquer acidente acontecer que possa potencialmente derrubar o site. Neste artigo vamos olhar para esses papéis de usuário brevemente e também entrar em como criar suas próprias funções personalizadas.
Funções de usuário têm sido uma parte importante da experiência WordPress desde a versão 2.0. A maioria das pessoas nem sequer sabem que existem e atribuir direitos de administrador a todos os que têm acesso ao painel do seu site (obviamente não é uma boa coisa para um monte de razões). Fora da prateleira, WordPress vem com seis funções de usuário padrão:
- Administrador : alguém que tem acesso a todos os recursos administrativos e funções dentro de um site.
- Editor : alguém que pode publicar e gerenciar postagens de todos os usuários, incluindo os seus próprios.
- Autor : alguém que pode publicar e gerenciar seus próprios posts.
- Colaborador : alguém que pode escrever e gerenciar seus próprios posts, mas não pode publicá-los.
- Assinante : alguém que só consegue gerenciar seu perfil.
Por que usar funções de usuário personalizadas?
Para a maior parte as funções de usuário padrão são tudo o que é necessário. Mas há casos em que você precisa de uma função de usuário que não se encaixa com os parâmetros das funções padrão. E neste artigo vou mostrar-lhe como criar seus próprios papéis de usuário personalizado sem usar um plug-in.
Vamos colocar um mundo real girar sobre por que você iria querer usar funções de usuário personalizado. Normalmente, uso funções de usuário personalizadas para garantir que meus clientes só tenham acesso ao que eles precisam. Tenho certeza de que há pessoas que irão debater que é o site do cliente e eles devem ter acesso de administrador como o proprietário. E isso é bom se você não tem um contrato de manutenção com o cliente e está apenas entregando o site para o cliente e passar para o próximo projeto.
Mas se você é responsável por garantir que o site permaneça 24 horas por dia, 7 dias por semana, recomendo restringir o acesso do cliente por meio de uma função de usuário personalizada. Dessa forma, eu posso dar ao cliente tudo o que eles precisam para tornar seu site eficaz, como adicionar conteúdo, talvez adicionar eventos qualquer que eles precisam fazer. O que eles não podem fazer é coisas que podem trazer o site para baixo ou mess-up algumas funcionalidades. Eu restringir coisas como o acesso para adicionar ou remover plugins, temas, núcleo de atualização, todos os tipos de coisas que eu gostaria de fazer como parte da minha manutenção contínua.
Mas vamos começar com uma rápida revisão do básico, não é?
Funções básicas do WordPress
A fim de gerenciar funções e capacidades de forma eficaz, existem cinco funções muito simples:
- add_role() : Permite que você adicione uma função personalizada .
- remove_role() : Permite remover uma função personalizada .
- add_cap() : Permite adicionar uma capacidade personalizada a uma função.
- remove_cap() : Permite remover uma capacidade personalizada de uma função.
- get_role() : Obtém informações sobre uma função, bem como os recursos associados à função.
Nós só vamos usar a função add_role () para este artigo como vamos criar uma função de usuário personalizada para o nosso cliente fictício.
Definindo o papel do usuário
Então antes de mergulhar no código precisamos ter um plano, porque mergulhar em código sem um plano nunca é uma boa idéia.
Portanto, precisamos dar ao usuário um nome de função. Vamos mantê-lo simples e chamar a função de usuário ‘Cliente’.
Então, o que o papel do usuário ‘Cliente’ realmente pode fazer? Há mais de 50 recursos diferentes disponíveis em uma instalação limpa do WordPress (o número aumenta uma vez que você começar a adicionar plugins, mas vamos discutir isso em outro artigo). Para os nossos propósitos, queremos que o cliente seja capaz de fazer o seguinte:
- Criar Mensagens
- Editar mensagens
- Editar outros posts
- Gerenciar categorias
- Editar Páginas
Igualmente importante é o que não queremos que eles sejam capazes de fazer:
- Editar temas
- Adicionar ou remover plug-ins
- Atualizar núcleo
Escrevendo o Código
Vamos colocar este código no arquivo functions.php para o nosso tema ativo. Então vamos começar adicionando isso ao arquivo:
// Adiciona uma função de usuário $result = add_role( 'client', __( 'Client' ), array( ) );
Ao adicionar esse pedaço de código, você tecnicamente criou uma nova função de usuário (você pode verificá-la no menu suspenso na Adicionar novo usuário página e ele deve estar lá). O problema é que essa função de usuário não tem nenhuma funcionalidade atribuída a ele. Portanto, o próximo passo é, obviamente, adicionar a funcionalidade que identificamos anteriormente em nossos requisitos acima. Basta adicionar o array
código ao que você já inseriu em seu arquivo functions.php .
// Adicionar uma função de usuário personalizada $result = add_role( 'client', __( 'Client' ), array( 'read' => true, // true allows this capability 'edit_posts' => true, // Allows user to edit their own posts 'edit_pages' => true, // Allows user to edit pages 'edit_others_posts' => true, // Allows user to edit others posts not just their own 'create_posts' => true, // Allows user to create new posts 'manage_categories' => true, // Allows user to manage post categories 'publish_posts' => true, // Allows the user to publish, otherwise posts stays in draft mode ) );
Isso nos dará a funcionalidade que queremos que o cliente tenha, mas ainda precisamos restringir-nos de fazer coisas que poderiam potencialmente incapacitar o site. Então vamos adicionar isso agora.
// Adicionar uma função de usuário personalizada $result = add_role( 'client', __( 'Client' ), array( 'read' => true, // true allows this capability 'edit_posts' => true, // Allows user to edit their own posts 'edit_pages' => true, // Allows user to edit pages 'edit_others_posts' => true, // Allows user to edit others posts not just their own 'create_posts' => true, // Allows user to create new posts 'manage_categories' => true, // Allows user to manage post categories 'publish_posts' => true, // Allows the user to publish, otherwise posts stays in draft mode 'edit_themes' => false, // false denies this capability. User can’t edit your theme 'install_plugins' => false, // User cant add new plugins 'update_plugin' => false, // User can’t update any plugins 'update_core' => false // user cant perform core updates ) );
Como determinar se a função de usuário está configurada corretamente
Certificar-se de que sua nova função de usuário está funcionando como planejado requer que você configure um novo usuário com a função apropriada, faça logoff e faça login novamente como novo usuário.
Dependendo das capacidades que você permitiu e do que negou, a primeira coisa que deve observar é uma alteração no que está disponível no painel. A imagem abaixo mostra o que você veria se configurar a função de cliente como fizemos acima.
Como você pode ver, as opções disponíveis para este usuário são muito reduzidas como resultado do que foi permitido eo que foi explicitamente negado. Agora você tem alguma parte de mente como um desenvolvedor / gerente de site que você espero que não será recebendo a chamada dizendo “Eu não sei o que aconteceu, mas de repente o meu site não está lá.”