¿permitir a los editores editar menús?

43

Me gustaría poder otorgar a mis editores el poder de cambiar el menú, ¿se puede hacer esto?

La pestaña de apariencia no parece ser una opción, ¿puedo hacerlo?

    
pregunta Mild Fuzz 17.11.2010 - 13:42

6 respuestas

47

agrega esto a functions.php de tu tema:

// add editor the privilege to edit theme

// get the the role object
$role_object = get_role( 'editor' );

// add $cap capability to this role object
$role_object->add_cap( 'edit_theme_options' );
    
respondido por el user3474 24.02.2011 - 14:11
16

EDITAR: actualización para WP 4.9 & solo oculta los elementos del menú para el editor

Si desea que sus usuarios puedan cambiar el menú de navegación, pero no las otras opciones en apariencia, use esto

// Do this only once. Can go anywhere inside your functions.php file
$role_object = get_role( 'editor' );
$role_object->add_cap( 'edit_theme_options' );

Puede comentar este código completo después de actualizar su panel de administración, ya que el código anterior realizará cambios persistentes en la base de datos.

Ahora tiene todas las opciones en apariencia visibles para los editores. Puedes ocultar las otras opciones así:

function hide_menu() {

    if (current_user_can('editor')) {

        remove_submenu_page( 'themes.php', 'themes.php' ); // hide the theme selection submenu
        remove_submenu_page( 'themes.php', 'widgets.php' ); // hide the widgets submenu
        remove_submenu_page( 'themes.php', 'customize.php?return=%2Fwp-admin%2Ftools.php' ); // hide the customizer submenu
        remove_submenu_page( 'themes.php', 'customize.php?return=%2Fwp-admin%2Ftools.php&autofocus%5Bcontrol%5D=background_image' ); // hide the background submenu


        // these are theme-specific. Can have other names or simply not exist in your current theme.
        remove_submenu_page( 'themes.php', 'yiw_panel' );
        remove_submenu_page( 'themes.php', 'custom-header' );
        remove_submenu_page( 'themes.php', 'custom-background' );
    }
}

add_action('admin_head', 'hide_menu');

Las últimas 3 líneas en la función hide_menu() son temas específicos de mi tema. Puede encontrar el segundo parámetro haciendo clic en el submenú que desea ocultar, en el panel de administración. Su URL será algo como: example.com/wp-admin/themes.php?page=yiw_panel

Entonces, en este ejemplo, el segundo parámetro para la función remove_submenu_page() será yiw_panel

    
respondido por el Jules 16.04.2013 - 16:51
11

En WordPress 3.8, este sería un mejor código que la respuesta actual aceptada.

/**
 * @var $roleObject WP_Role
 */
$roleObject = get_role( 'editor' );
if (!$roleObject->has_cap( 'edit_theme_options' ) ) {
    $roleObject->add_cap( 'edit_theme_options' );
}
    
respondido por el BenFreke 09.01.2014 - 08:39
4

complemento de instalación "User Role Editor" - Activar edit_theme_options ENCENDIDO - instalar el complemento Adminimize - desactivar "Widgets" y "Switch Theme" para los editores;)

    
respondido por el user4657 14.04.2011 - 09:51
3

Cuando miro la estructura del menú de administración, parece el% El enlace nav-menus.php está vinculado a la capacidad edit_theme_options . ¿Puedes modificar el rol de editor para incluir esta capacidad? Esto también les dará la opción de editar widgets , No sé si esto es un problema? Todas las funciones del menú Ajax están restringidas por esta capacidad, por lo que simplemente cambiar la capacidad del menú de administración para editar menús probablemente no funcionará.

    
respondido por el Jan Fabry 17.11.2010 - 14:26
0

Descubrí que su menú funcionará de esta manera: instale el complemento " Editor de funciones del usuario "y allí puede editar la condición para el rol de editor y otra también. Encienda edit_theme_options. Pero ahora: verá la opción "menú" en "temas", "widgets". Para mí: después de hacer clic en "menú" (como editor) no veo las opciones llenas, pero estoy vacío. Así que desactivaría el complemento "User Role Editor" y las opciones rellenadas para "menú" aparecen correctamente. ¡Tenga en cuenta que la desactivación del complemento "User Role Editor" sigue siendo una condición para el editor activo! Bien por mí, tal vez también te ayude

    
respondido por el janoo 05.01.2011 - 13:54

Lea otras preguntas en las etiquetas