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?

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!

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?

Ricevo ancora un errore fatale con "remove_submenu_page" - Lo sto aggiungendo all'inizio del file Functions.php nella cartella del mio Tema, è corretto?

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.

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.
