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?
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?
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' );
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
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' );
}
complemento de instalación "User Role Editor" - Activar edit_theme_options ENCENDIDO - instalar el complemento Adminimize - desactivar "Widgets" y "Switch Theme" para los editores;)
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á.
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
Lea otras preguntas en las etiquetas user-roles