¿Cómo puedo permitir que el rol del editor cambie la configuración del tema?

22

Acabo de configurar un nuevo blog para un amigo y pensé que es mejor no darle acceso de administrador de inmediato como medida de precaución.

Por lo tanto, creé un nuevo usuario como editor.

Pero luego vi que este usuario no puede cambiar la Configuración del tema como Fondo y Encabezado.

¿Hay alguna manera fácil de permitir que el Rol del editor edite la configuración de un tema en Twenty Ten o un elemento secundario? Básicamente debería poder hacer cualquier cosa que un administrador pueda hacer reg. el tema, probablemente incluso cambiando los temas.

hakre
fuente
2
Me recuerda ... He escrito un complemento para eso: Opciones de tema para editores
fuxia

Respuestas:

21

puedes agregar capacidades al rol de editor usando el objeto de rol y add_cap desde tus funciones.php

<?php
   // get the the role object
   $editor = get_role('editor');
   // add $cap capability to this role object
   $editor->add_cap('edit_theme_options');
?>

También puede eliminar capacidades:

$editor->remove_cap('delete_posts'); 

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

Bainternet
fuente
3
¡Genial, eso funcionó! Para los shorties: get_role('editor')->add_cap('edit_theme_options');:)
hakre
1
@hakre FYI Las asignaciones de variables directas como esa a()->b()no funcionarán en las versiones de PHP anteriores a 5.
hitautodestruct
Como los roles generalmente se almacenan en la base de datos, los roles de actualización deben realizarse en un complemento y allí dentro de un enlace de activación / desactivación. Simplemente no es necesario ejecutar este código en cada proceso de WordPress.
David
6

Dado que este es el primer éxito en Google para esta pregunta, creo que este es el lugar correcto para una actualización:

Para mí, no pude hacerlo funcionar a través de edit_theme_options. Luego leí la fuente del complemento y descubrí que en realidad es manage_options. Y funcionó.

tl; dr:

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

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

Sebastian Schmid
fuente
Grandes cosas amigo ...
Abbas
Necesario para agregar una línea más para WP> 4.0$role_object->add_cap('customize');
Alex
1

Otro gran complemento es el Editor de roles de usuario (http://wordpress.org/extend/plugins/user-role-editor/). Es similar a los Miembros, pero mucho más básico y fácil de usar. Además, los desarrolladores siempre están disponibles para escuchar comentarios y ofrecer asistencia, si es necesario.

Travis Pflanz
fuente
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;
} );
Bryan Willis
fuente