Dar acceso de editor a la barra lateral

13 sept 2011, 21:22:00
Vistas: 14.9K
Votos: 16

Quiero dar acceso al Rol de Editor para editar la barra lateral y su contenido. Tengo un widget de texto allí y para editarlo el usuario necesita ser administrador - esto es molesto. ¿Cómo puedo otorgar permiso al Rol de Editor para que tenga acceso a editar la barra lateral?

2
Comentarios

Esto puede estar relacionado: http://wordpress.stackexchange.com/questions/13413/how-to-add-a-capability-to-a-user-role

Elliott Elliott
13 sept 2011 21:33:36

Parece ser algo similar a lo que estoy buscando pero no entiendo el código. Parece que está creando un nuevo usuario y asignando roles en lugar de editar un usuario existente

Howdy_McGee Howdy_McGee
13 sept 2011 21:40:05
Todas las respuestas a la pregunta 2
8
23

La capacidad edit_theme_options debería permitir al usuario editar la barra lateral como se describe en esta página: http://codex.wordpress.org/Appearance_Widgets_SubPanel

Código para añadir en functions.php

   $role = get_role('editor'); 
   $role->add_cap('edit_theme_options');

Edición:

Esto debería funcionar para evitar que el editor acceda a temas o menús

function custom_admin_menu() {

    $user = new WP_User(get_current_user_id());     
    if (!empty( $user->roles) && is_array($user->roles)) {
        foreach ($user->roles as $role)
            $role = $role;
    }

    if($role == "editor") { 
       remove_submenu_page( 'themes.php', 'themes.php' );
       remove_submenu_page( 'themes.php', 'nav-menus.php' ); 
    }       
}

add_action('admin_menu', 'custom_admin_menu');

No he tenido la oportunidad de probar esto, pero solo los elimina del menú, todavía podrían acceder escribiendo la URL directamente.

13 sept 2011 21:49:59
Comentarios

Eso funciona perfectamente, pero ¿cómo evito que accedan al menú o a los temas?

Howdy_McGee Howdy_McGee
13 sept 2011 22:06:04

Mira mi respuesta editada.

Elliott Elliott
13 sept 2011 22:23:26

Error Fatal: Llamada a función no definida remove_menu_page() - Además, no me preocupa que lo escriban directamente en la URL, dudo mucho que alguien sea tan malintencionado e incluso si lo fueran, solo son temas y menús. ¡Y no puedo darle suficientes +1 a tu publicación! ¡Gracias!

Howdy_McGee Howdy_McGee
13 sept 2011 22:36:40

Perdón, agregué el código incorrecto, debería ser remove_submenu_page aunque aún así no deberías haber recibido el error fatal. He editado mi respuesta y probado, todo funciona bien para mí.

Elliott Elliott
13 sept 2011 22:48:57

Sigo recibiendo un error fatal con "remove_submenu_page" - Lo estoy agregando al principio del Functions.php en la carpeta de mi Tema, ¿es eso correcto?

Howdy_McGee Howdy_McGee
13 sept 2011 22:53:27

Sí, eso es correcto, ¿qué versión de WordPress estás usando actualmente?

Elliott Elliott
13 sept 2011 22:55:07

Estoy ejecutando la versión 3.0.4 - estaba intentando no actualizar porque sigo escuchando sobre lo llena de errores que está tanto en el frontend como en el backend.

Howdy_McGee Howdy_McGee
13 sept 2011 23:00:54

Ah, entonces esa sería la razón, solo ha sido compatible desde la versión 3.1.0. No he tenido errores desde que actualicé... Siempre recomendaría actualizar a la última versión para ayudar a mantenerlo seguro.

Elliott Elliott
13 sept 2011 23:07:29
Mostrar los 3 comentarios restantes
1

Si solo deseas configurar esto de la manera más sencilla posible, utiliza el plugin Members. La capacidad que necesitarás añadir es 'edit_theme_options'. Ten en cuenta que esto otorgará más que solo el área de widgets, también dará acceso al editor a todo el menú Apariencia. Ver aquí

http://wordpress.org/extend/plugins/members/

Si deseas hacer esto programáticamente, necesitarás usar add_cap().

$editor = get_role('editor');
$editor->add_cap('edit_theme_options');

Puedes colocar ese código en su propio plugin y ya estarás listo. O ponerlo en functions.php.

13 sept 2011 21:50:15
Comentarios

Y si alguien está usando el bastante popular User Role Editor, también puedes seleccionar 'Editar opciones del tema'/'edit_theme_options' allí.

User User
2 dic 2018 05:55:53