¿Cómo puedo permitir que el Rol Editor modifique la Configuración del Tema?

24 mar 2011, 23:32:55
Vistas: 29.3K
Votos: 24

Acabo de configurar un nuevo Blog para un amigo y pensé que sería mejor no darle acceso de Administrador de inmediato como medida de precaución.

Por lo tanto, creé un nuevo usuario con el rol de Editor.

Pero luego vi que este usuario no puede cambiar la Configuración del Tema como el Fondo y la Cabecera.

¿Existe una manera sencilla de permitir que el Rol Editor edite cualquier configuración del tema en Twenty Ten o un tema hijo? Básicamente, debería poder hacer todo lo que un Administrador puede hacer con respecto al tema, probablemente incluso cambiar temas.

1
Comentarios

Me recuerda… He escrito un plugin para eso: Opciones del tema para editores

fuxia fuxia
14 sept 2014 17:22:49
Todas las respuestas a la pregunta 5
3
23

puedes agregar capacidades al rol de editor usando el objeto de rol y add_cap desde tu functions.php

<?php
   // obtener el objeto de rol
   $editor = get_role('editor');
   // agregar la capacidad $cap a este objeto de rol
   $editor->add_cap('edit_theme_options');
?>

también puedes eliminar capacidades:

$editor->remove_cap('delete_posts');

solo echa un vistazo a la lista de capacidades y lo que significa cada una.

25 mar 2011 01:06:25
Comentarios

¡Genial, eso funcionó! Para los resúmenes: get_role('editor')->add_cap('edit_theme_options'); :)

hakre hakre
25 mar 2011 02:55:28

@hakre Para tu información, asignaciones directas de variables como a()->b() no funcionarán en versiones de PHP anteriores a la 5.

hitautodestruct hitautodestruct
10 abr 2013 11:40:19

Como los roles normalmente se almacenan en la base de datos, actualizar roles debería hacerse en un plugin y dentro de un hook de activación/desactivación. Simplemente no es necesario ejecutar este código en cada proceso de WordPress.

David David
14 mar 2016 10:35:52
2

Dado que este es el primer resultado en Google para esta pregunta, siento que este es el lugar adecuado para una actualización:

En mi caso, no pude hacerlo funcionar a través de edit_theme_options. Luego leí el código fuente del plugin y descubrí que en realidad es manage_options. Y funcionó.

Resumen:

$role_object = get_role( 'editor' );
$role_object->add_cap( 'manage_options' );

Funciona para mí (en el año 2014)

8 jul 2014 13:54:52
Comentarios

Excelente material, amigo...

Abbas Abbas
30 dic 2015 07:59:46

Necesitaba agregar una línea más para WP > 4.0 $role_object->add_cap('customize');

Alex Alex
6 mar 2017 05:33:22
0

¿Acaso no necesitan la capacidad "edit_themes"? Puedes usar el plugin de Justin Tadlock http://wordpress.org/extend/plugins/members/ para editar las capacidades asociadas con cada rol.

25 mar 2011 01:03:00
0

Otro gran plugin es User Role Editor (http://wordpress.org/extend/plugins/user-role-editor/). Es similar a Members, pero mucho más básico y sencillo de usar. Además, los desarrolladores siempre están disponibles para escuchar comentarios y ofrecer ayuda si es necesario.

12 abr 2012 08:19:53
0

Esto es antiguo, pero aquí hay una forma más nueva de lograrlo:

add_filter( 'user_has_cap',
function( $caps ) {
    if ( ! empty( $caps['edit_pages'] ) )
        $caps['edit_theme_options'] = true;
    return $caps;
} );
14 mar 2016 06:28:13