Como criar uma função de usuário personalizada no WordPress

Publicados: 2021-02-06

Ao construir um site com um CMS, a flexibilidade é sempre bem-vinda. Felizmente, o WordPress tem mais do que seu quinhão, com temas e plugins que nos permitem criar uma experiência altamente personalizada.

Mas sua flexibilidade vai além daquelas coisas extras que podemos instalar. Na verdade, está embutido no núcleo do software.

A capacidade de criar funções de usuário personalizadas é um exemplo brilhante. Hoje, vamos dar uma olhada no que são, por que você gostaria de usá-los e algumas técnicas diferentes para criá-los.

Controle de grão fino sobre as permissões do usuário

Em cada instalação do WordPress, você já tem acesso a uma seleção de funções de usuário padrão. Eles nos permitem designar o que os usuários podem e não podem fazer no back-end (também conhecido como Dashboard) do site.

Isso faz todo o sentido. Nem todos que gerenciam conteúdo precisam ter privilégios administrativos. Portanto, podemos atribuir a cada usuário uma função com base na necessidade. É uma ótima medida de segurança e pode garantir melhor contra acidentes ou até mesmo alguém instalando plugins compulsivamente.

Isso também funciona no front-end também. Se você deseja que apenas usuários logados vejam conteúdo específico, você pode criar essa funcionalidade em seu tema ou adicioná-la por meio de um plug-in de associação.

Mas, embora as funções de usuário padrão (Administrador, Editor, Autor, Colaborador e Assinante) sejam úteis, há momentos em que você precisa desse controle extra. É por isso que o WordPress oferece a capacidade de criar suas próprias funções personalizadas.

Quando usar uma função personalizada

Uma função de usuário personalizada pode ser útil em vários cenários. Aqui estão alguns dos mais comuns que você pode enfrentar:

Você tem usuários que gerenciam diferentes tipos de conteúdo

Por padrão, o WordPress vem com dois tipos principais de conteúdo voltados para o público: Posts e Páginas. Mas é fácil adicionar mais com o uso de tipos de postagem personalizados. Você pode, por exemplo, criar tipos de postagem para coisas como comunicados à imprensa ou membros da equipe. Além disso, vários plugins também podem instalar seus próprios tipos de postagem.

Grandes organizações podem ter diversos tipos de conteúdo, com pessoas específicas em mente para gerenciar cada um. Nesse caso, uma função de usuário padrão não seria ideal, pois pode fornecer acesso a todo o lote (ou o contrário, dependendo da sua configuração). Uma função personalizada, no entanto, permitiria que usuários diferentes vissem apenas os tipos de postagem que você atribuiu a eles.

Um usuário precisa fazer apenas uma coisa

Há ocasiões em que um usuário pode precisar de um nível exclusivo de acesso aos recursos do seu site. Por exemplo, digamos que você faça um curso online. Você pode ter um membro da equipe que precisa acessar todo o curso no front e no back-end para garantir que ele funcione corretamente e que o conteúdo seja preciso.

Se tudo o que esse membro da equipe precisa fazer é se concentrar no próprio curso, uma conta de administrador pode ser um exagero. Com uma função de usuário personalizada, eles podem fazer seu trabalho sem percorrer opções desnecessárias.

Você precisa “subir de nível” uma função existente

Às vezes, uma função de usuário existente do WordPress é quase perfeita. Mas talvez haja uma coisa extra que um usuário precisa acessar.

Assuma o papel de autor. Por padrão, eles podem publicar posts – mas não páginas. Normalmente, você teria que levar o usuário até o Editor. Isso pode ser bom em alguns casos. No entanto, pode haver outros recursos incluídos que você não deseja que esse usuário específico acesse. Aqui, criar uma função personalizada pode ser a melhor opção.

Como criar uma função de usuário personalizada

Existem dois métodos diferentes para criar uma função de usuário personalizada do WordPress. A primeira é adicionar algum código a um plugin personalizado ou ao arquivo functions.php do seu tema. A segunda é instalar um dos muitos plugins disponíveis que permitem criar e editar funções.

O método que você utiliza realmente depende da preferência pessoal. Se você deseja a capacidade de escolher os recursos do usuário de maneira visual, um plug-in faz mais sentido. Mas se você estiver confortável com o código e/ou não quiser que outros administradores brinquem com as configurações, adicionar um snippet pode ser para você.

De qualquer forma, vamos começar com alguns exemplos de código e uma seleção de plugins também.

Primeiro, é recomendável que você estude os vários recursos de usuário que o WordPress oferece. Observe também que os tipos de postagem personalizados também podem ter seus recursos personalizados. Isso pode ser útil no primeiro cenário de exemplo que mencionamos acima.

Método nº 1: adicionar um trecho de código

Neste exemplo, vamos criar uma função de usuário chamada "Membro da equipe". Isso inclui todos os recursos da função Autor, mas com a capacidade adicional de editar e publicar páginas.

Cada recurso que estamos atribuindo à função está listado no snippet abaixo e é definido como “ true ”. A exceção aqui é que não queremos que os usuários com essa função excluam as páginas publicadas, por isso estamos configurando explicitamente isso como “ falso ” – apenas por segurança.

Novamente, este código iria para o arquivo functions.php do seu tema ou, opcionalmente, para um plugin personalizado.

 /* Create Staff Member User Role */ add_role( 'staff_member', // System name of the role. __( 'Staff Member' ), // Display name of the role. array( 'read' => true, 'delete_posts' => true, 'delete_published_posts' => true, 'edit_posts' => true, 'publish_posts' => true, 'upload_files' => true, 'edit_pages' => true, 'edit_published_pages' => true, 'publish_pages' => true, 'delete_published_pages' => false, // This user will NOT be able to delete published pages. ) );

Depois de salvar esse código e atualizar nosso site no navegador, podemos adicionar um novo usuário com essa função.

Tela de adicionar novo usuário do WordPress.

Quando nosso usuário com a função de membro da equipe faz login, ele pode ver as páginas e as postagens.

O usuário logado vê Posts e Páginas.

Outra alternativa seria simplesmente adicionar alguns recursos à função Autor existente. Podemos fazer isso através da função add_cap() :

 /* Upgrade the Author Role */ function author_level_up() { // Retrieve the Author role. $role = get_role( 'author' ); // Let's add a set of new capabilities we want Authors to have. $role->add_cap( 'edit_pages' ); $role->add_cap( 'edit_published_pages' ); $role->add_cap( 'publish_pages' ); } add_action( 'admin_init', 'author_level_up');

Ambos os trechos de código fazem essencialmente a mesma coisa. No entanto, adicionar a nova função de membro da equipe pode ser melhor nos casos em que você já tem usuários com a função de autor e não deseja que eles tenham recursos extras.

Método 2: use um plug-in

A funcionalidade acima pode ser facilmente replicada através do uso de um plugin. Vários foram criados para esse tipo de função de usuário e gerenciamento de recursos. Eles oferecem uma vantagem, pois utilizam uma GUI e adicionam uma camada de conveniência a todo o processo.

Vamos dar uma olhada em algumas das opções mais populares:

Editor de função do usuário

Com o User Role Editor, adicionar ou remover recursos de uma função é tão simples quanto marcar ou desmarcar uma caixa nas configurações. Você também pode criar suas próprias funções de usuário personalizadas e definir os recursos necessários. O plugin também suporta instalações multisite do WordPress.

Editor de função de usuário do WPFront

O Editor de Função de Usuário do WPFront oferece recursos semelhantes, permitindo que você adicione ou edite funções de usuário. Mas também permite que os administradores migrem usuários de uma função para outra e atribuam várias funções a usuários individuais.

Gerenciador de acesso avançado

Se você está procurando algo com um escopo mais amplo, o Advanced Access Manager pode ser uma boa escolha para você. Ele oferece gerenciamento de funções e recursos, além da capacidade de controlar o acesso a recursos de front-end e back-end, como menus e widgets.

Conheça seus papéis

A capacidade de criar funções de usuário personalizadas é apenas mais uma razão para amar o WordPress. É algo muito específico, mas pode ser extremamente útil quando você precisa de algo que vá além das funções padrão.

Portanto, da próxima vez que você se encontrar em uma situação em que o controle das capacidades do usuário seja necessário, saiba que você tem essa poderosa ferramenta à sua disposição.