Concedere l'accesso Editor alla Sidebar
Voglio concedere al ruolo Editor l'accesso per modificare la sidebar e i suoi contenuti. Ho un widget di testo lì e per modificare questo widget l'utente deve essere un amministratore - questo è un problema. Come posso concedere i permessi al ruolo Editor per dargli accesso alla modifica della sidebar?
La capacità edit_theme_options dovrebbe permettere all'utente di modificare la sidebar come descritto in questa pagina:
http://codex.wordpress.org/Appearance_Widgets_SubPanel
Codice da aggiungere a functions.php
$role = get_role('editor');
$role->add_cap('edit_theme_options');
Modifica:
Questo codice dovrebbe funzionare per impedire all'editor di accedere ai temi o ai menu
function custom_admin_menu() {
$user = new WP_User(get_current_user_id());
if (!empty( $user->roles) && is_array($user->roles)) {
foreach ($user->roles as $role)
$role = $role;
}
if($role == "editor") {
remove_submenu_page( 'themes.php', 'themes.php' );
remove_submenu_page( 'themes.php', 'nav-menus.php' );
}
}
add_action('admin_menu', 'custom_admin_menu');
Non ho avuto modo di testarlo, ma rimuove solo le voci dal menu - potrebbero comunque accedervi digitando direttamente l'URL.
Funziona perfettamente, ma poi come faccio a impedire loro di accedere ai menu o ai temi?
Howdy_McGee
Errore Fatale: Chiamata a funzione non definita remove_menu_page() - Inoltre non mi preoccupa che possano digitare l'URL, dubito fortemente che qualcuno possa essere così malintenzionato e comunque si tratta solo di temi e menu. E non posso darti abbastanza +1! Grazie!
Howdy_McGee
Scusa ho aggiunto il codice sbagliato, dovrebbe essere remove_submenu_page anche se comunque non dovresti aver ricevuto un errore fatale. Ho modificato la mia risposta, ho testato e tutto funziona bene per me?
Elliott
Ricevo ancora un errore fatale con "remove_submenu_page" - Lo sto aggiungendo all'inizio del file Functions.php nella cartella del mio Tema, è corretto?
Howdy_McGee
Sto utilizzando la versione 3.0.4 - Cercavo di non aggiornare perché continuo a sentire quanto sia piena di bug sia sul frontend che sul backend.
Howdy_McGee
Se desideri configurare questa opzione nel modo più semplice possibile, utilizza il plugin Members. La capacità che dovrai aggiungere è 'edit_theme_options'. Tieni presente che questo concederà più della sola area widget, concederà anche all'editor l'accesso all'intero menu Aspetto. Vedi qui
http://wordpress.org/extend/plugins/members/
Se vuoi farlo programmaticamente, dovrai utilizzare add_cap().
$editor = get_role('editor');
$editor->add_cap('edit_theme_options');
Puoi inserire quel codice in un plugin personalizzato, e il gioco è fatto. Oppure inseriscilo in functions.php.