Como adicionar uma capacidade a uma função de usuário?

11

Estou gerenciando uma rede Wordpress e gostaria de adicionar o recurso de usuário unfiltered_html à função de usuário já predefinida de Administrador. Em uma instalação padrão do Wordpress, a conta Admin já teria esse recurso, mas em uma instalação de MU, somente os Super Admins têm esse recurso. Wordpress Funções e capacidades .

Como posso aumentar a função de administrador dentro de um tema ou plug-in?

    
por Jonnybojangles 29.03.2011 / 19:31

2 respostas

12

Você pode usar a classe WP_Role ,

// get the the role object
$role_object = get_role( $role_name );

// add $cap capability to this role object
$role_object->add_cap( $capability_name );

// remove $cap capability from this role object
$role_object->remove_cap( $capability_name );

Para resolver sua pergunta original sobre como permitir que os administradores insiram tags SCRIPT e IFRAME no conteúdo da postagem, você está procurando o recurso 'unfiltered_html', que no Multisite é concedido apenas aos Superusuários.

// get the the role object
$admin_role = get_role( 'administrator' );
// grant the unfiltered_html capability
$admin_role->add_cap( 'unfiltered_html', true );

ou você pode executar isso uma vez em suas funções:

/* Roles & Capabilities */
add_role('professional', 'Professional User', array(
    'read' => true, // True allows that capability, False specifically removes it.
    'edit_posts' => true,
    'delete_posts' => true,
    //'edit_published_posts' => true,
    //'publish_posts' => true,
    //'edit_files' => true,
    'upload_files' => true //last in array needs no comma!
));
    
por Philip 30.03.2011 / 07:39
2

Para permitir outra função que não seja Super Admin ou Admin (dependendo se a instalação do Wordpress é uma instância de rede / MU ou não) para adicionar HTML não filtrado a uma postagem ou comentário, o filtro KSES do Wordpress deve ser removido.

Verifique se um usuário possui um recurso específico.

if ( current_user_can( 'unfiltered_html' ) ) { … }

Em caso afirmativo, remova o KSES

kses_remove_filters();

Esta funcionalidade já está incluída em muil não filtrado, permitindo que os administradores e editores adicionem html não filtrado.

    
por Jonnybojangles 06.04.2011 / 20:17