Dar acceso de editor a la barra lateral
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?
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.
Eso funciona perfectamente, pero ¿cómo evito que accedan al menú o a los temas?
Howdy_McGee
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
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
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
Sí, eso es correcto, ¿qué versión de WordPress estás usando actualmente?
Elliott
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
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.