¿Cómo agregar una capacidad a un rol de usuario?

11

Estoy administrando una red de Wordpress y me gustaría agregar la capacidad de usuario unffiltered_html a la función de usuario ya predefinida de administrador. En una instalación estándar de Wordpress, la cuenta de administrador ya tendría esta capacidad, pero en una instalación de MU solo a los Superadministradores se les otorga esta capacidad. Wordpress Funciones y capacidades .

¿Cómo puedo aumentar la función de administrador desde un tema o complemento?

    
pregunta Jonnybojangles 29.03.2011 - 19:31

2 respuestas

12

Puedes usar la clase 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 );

Por lo tanto, para abordar su pregunta original sobre cómo habilitar a los administradores para que ingresen las etiquetas SCRIPT e IFRAME en el contenido de la publicación, está buscando la capacidad 'unffiltered_html', que en Multisite solo se otorga a los Super Admins.

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

o puede ejecutar esto una vez en sus funciones:

/* 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!
));
    
respondido por el Philip 30.03.2011 - 07:39
2

Para permitir que otra función que no sea Super Admin o Admin (dependiendo de si la instalación de Wordpress es una instancia de network / MU o no) agregar HTML no filtrado a una publicación o comentario, se debe eliminar el filtro KSES de Wordpress.

Compruebe si un usuario tiene una capacidad particular.

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

Si es así, elimine KSES

kses_remove_filters();

Esta funcionalidad ya está envuelta en mu sin filtrar, lo que permite a los administradores y editores agregar html sin filtrar.

    
respondido por el Jonnybojangles 06.04.2011 - 20:17

Lea otras preguntas en las etiquetas