Vorrei poter concedere ai miei redattori il potere di modificare il menu, è possibile farlo?
La scheda Aspetto non sembra essere affatto un'opzione, posso farlo?
Vorrei poter concedere ai miei redattori il potere di modificare il menu, è possibile farlo?
La scheda Aspetto non sembra essere affatto un'opzione, posso farlo?
Risposte:
aggiungi questo al tema functions.php
:
// 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' );
WP_Role
admin_init
e soloif !$role_object->has_cap('edit_theme_options')
EDIT: aggiornamento per WP 4.9 e nasconde solo le voci di menu per Editor
Se vuoi che i tuoi utenti siano in grado di cambiare il menu di navigazione, ma non le altre opzioni in apparenza: usa questo
// Do this only once. Can go anywhere inside your functions.php file
$role_object = get_role( 'editor' );
$role_object->add_cap( 'edit_theme_options' );
È possibile commentare l'intero codice dopo aver aggiornato il pannello di amministrazione, poiché il codice sopra apporterà modifiche permanenti al database.
Ora hai tutte le opzioni sotto l'aspetto visibili agli editori. Puoi nascondere le altre opzioni in questo modo:
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');
Le ultime 3 righe della hide_menu()
funzione sono specifiche del tema per il mio tema. Puoi trovare il secondo parametro facendo clic sul sottomenu che vuoi nascondere, nel pannello di amministrazione. Il tuo URL sarà quindi simile a: example.com/wp-admin/themes.php?page= yiw_panel
Quindi, in questo esempio, sarà il secondo parametro per la remove_submenu_page()
funzioneyiw_panel
Quando guardo la struttura del menu di amministrazione, sembra che il nav-menus.php
collegamento sia legato alla funzionalitàedit_theme_options
. Puoi modificare il ruolo dell'editor per includere questa funzionalità? Ciò darebbe anche loro la possibilità di modificare i widget , non so se questo è un problema? Tutte le funzionalità del menu Ajax sono limitate da questa funzionalità, quindi la semplice modifica della funzionalità del menu di amministrazione per la modifica dei menu probabilmente non funzionerà.
Installa plug-in "User Role Editor" - Attiva edit_theme_options - Installa plug-in Amministra - disattiva "Widget" e "Cambia tema" per gli editor;)
Ho scoperto che il tuo menu funzionerà in questo modo: installa il plugin " User Role Editor " e lì puoi modificare le condizioni per il ruolo dell'editor e altro. Attiva edit_theme_options. Ma ora: vedrai l'opzione "menu" sotto "temi", "widget". Per me: dopo aver fatto clic su "menu" (come editor) non vedrei le opzioni piene ma vuote. Quindi disattiverei il plug-in "User Role Editor" e le opzioni riempite per "menu" vengono visualizzate correttamente. Si noti che la disattivazione del plug-in "User Role Editor" rimane le condizioni per l'editor attivo! Bene per me, forse ti aiuterà anche tu