WordPress.org

Rolhas e capacidades são dois aspectos importantes do WordPress que lhe permitem controlar os privilégios do utilizador.

WordPress armazena as funções e as suas capacidades na tabela options sob a tabela user_roles key.

Roles #Roles

Uma função define um conjunto de capacidades para um utilizador. Por exemplo, o que o utilizador pode ver e fazer no seu painel de instrumentos.

Por defeito, o WordPress tem seis funções:

  • Super Admin
  • Administrador
  • Editor
  • Autor
  • Contribuidor
  • Subscriber

Mais funções podem ser adicionadas e as funções por defeito podem ser removidas.

Adicionar papéis #Adicionar papéis

Adicionar novos papéis e atribuir-lhes capacidades com add_role().

function wporg_simple_role() {add_role('simple_role','Simple Role',array('read' => true,'edit_posts' => true,'upload_files' => true,),);}// Add the simple_role.add_action( 'init', 'wporg_simple_role' );

Expandir código fonte completoColapsar código fonte completo

Alerta:
Após a primeira chamada para add_role(), o Papel e as suas Capacidades serão armazenados na base de dados!

As chamadas sequenciais não farão nada: incluindo alterar a lista de capacidades, o que pode não ser o comportamento que se espera.

Nota:
Para alterar a lista de capacidades em massa: remover a função usando remove_role() e adicioná-la novamente usando add_role() com as novas capacidades.

Certifique-se de o fazer apenas se as capacidades diferirem das que espera (isto é, condicionar isto) ou irá degradar consideravelmente o desempenho!

Top

Remover Funções #Remover Funções

Remover Funções com remove_role().

function wporg_simple_role_remove() {remove_role( 'simple_role' );}// Remove the simple_role.add_action( 'init', 'wporg_simple_role_remove' );

Alerta:
Após a primeira chamada para remover_role(), o Papel e as suas Capacidades serão removidos da base de dados!

As chamadas sequenciais não farão nada.

Nota:
Se estiver a remover as funções padrão:

  • Aconselhamos a não remover as funções de Administrador e Super Admin!
  • >li>Cerve o código no seu plugin/tema, pois futuras actualizações do WordPress poderão adicionar novamente estes papéis.li>Executar
    update_option('default_role', YOUR_NEW_DEFAULT_ROLE)

br>br>, pois irá eliminar subscriber que é o papel por defeito do WP.

Top

Capacidades #Capacidades

Capacidades definem o que uma função pode e não pode fazer: editar mensagens, publicar mensagens, etc.

Nota:
Tipos personalizados podem requerer um certo conjunto de Capacidades.

Top

Adicionar Capacidades #Adding Capabilities

Pode definir novas capacidades para um papel.

Utiliza get_role() para obter o objecto de papel, depois utiliza o método add_cap() desse objecto para adicionar uma nova capacidade.

function wporg_simple_role_caps() {// Gets the simple_role role object.$role = get_role( 'simple_role' );// Add a new capability.$role->add_cap( 'edit_others_posts', true );}// Add simple_role capabilities, priority must be after the initial role definition.add_action( 'init', 'wporg_simple_role_caps', 11 );

Nota:
É possível adicionar capacidades personalizadas a qualquer papel.

p>Até ao nível do administrador padrão do WordPress, não teriam efeito, mas podem ser utilizados para ecrã de administração personalizado e áreas front-end.

Top

Capacidades de Remoção #Capacidades de Remoção

Pode remover capacidades de uma função.

A implementação é semelhante a Adicionar Capacidades com a diferença de remove_cap() método para o objecto de papel.

Top

Utilizar Funções e Capacidades #Utilizar Funções e Capacidades

Top

Encontrar Função #Utilizar Função

Conseguir o objecto de função incluindo todas as suas capacidades com get_role().

get_role( $role );

Top

O utilizador pode #O utilizador pode

Verifica se um utilizador tem uma função ou capacidade especificada com user_can().

user_can( $user, $capability );

Aviso:
Existe um terceiro argumento não documentado, $args, que pode incluir o objecto contra o qual o teste deve ser realizado.

E.g. Passar um ID de posto para testar a capacidade desse posto específico.

Top

Posso do Utilizador Actual #Posso do Utilizador Actual

current_user_can() é uma função de invólucro para user_can() usando o objecto do utilizador actual como o $user parâmetro.

p>Utilizar isto em cenários em que as áreas back-end e front-end devem exigir um certo nível de privilégios para aceder e/ou modificar.

current_user_can( $capability );

Top

Exemplo #Exemplo

Há um exemplo prático de adição de um link Editar num ficheiro modelo se o utilizador tiver a capacidade adequada:

if ( current_user_can( 'edit_posts' ) ) {edit_post_link( esc_html__( 'Edit', 'wporg' ), '<p>', '</p>' );}

Top

Multisite #Multisite

A função actual_utilizador_can_for_blog() é utilizada para testar se o utilizador actual tem uma certa função ou capacidade num blog específico.

current_user_can_for_blog( $blog_id, $capability );

Top

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *