Dar acceso al editor a la barra lateral

15

Quiero dar acceso al rol de editor para editar la barra lateral y sus contenidos. Tengo un widget de texto allí y para editar este widget de texto, el usuario debe ser un administrador, esto es una mierda. ¿Cómo le doy permiso al rol de editor que le dará acceso para editar la barra lateral?

Howdy_McGee
fuente
Esto puede estar relacionado: wordpress.stackexchange.com/questions/13413/…
Elliott
Parece ser 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

Respuestas:

21

La edit_theme_optionscapacidad 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 agregar a functions.php

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

Editar:

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 oportunidad de probar esto, pero solo los elimina del menú al que aún pueden acceder ingresando la URL directamente.

Elliott
fuente
Eso funciona de maravilla, pero ¿cómo puedo evitar que accedan al menú o los temas?
Howdy_McGee
Ver mi respuesta editada.
Elliott
Error grave: Llamada a una función indefinida remove_menu_page () - Además, no me preocupa que la escriban por URL. Realmente dudo que alguien sea tan malicioso y, aun así, son solo temas y menús. ¡Y no puedo hacer +1 en tu publicación lo suficiente! ¡Gracias!
Howdy_McGee
Lo sentimos, agregó un código incorrecto, remove_submenu_pageaunque aún no debería haber recibido el error fatal. ¿He editado mi respuesta y probado y todo funciona bien para mí?
Elliott
1
Ah, esa sería la razón por la que solo se admitía desde 3.1.0, no he tenido errores desde la actualización ... Siempre sugeriría actualizar a la última versión para ayudar a mantenerlo seguro.
Elliott
1

Si solo desea configurar esto de la manera más fácil posible, use el complemento Miembros. La capacidad que necesitará agregar es 'edit_theme_options'. Tenga en cuenta que esto otorgará más que solo el área de widgets, esto también le otorga al editor acceso a todo el menú Apariencia. Mira aquí

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

Si desea hacer esto mediante programación, deberá usar add_cap ().

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

Puede lanzar ese código en su propio complemento, y listo. O ponerlo en functions.php .

eddiemoya
fuente
Y si alguien usa el bastante popular Editor de roles de usuario, también puede seleccionar 'Editar opciones de tema' / 'editar_opciones_de_tema'.