Consenti all'editor di accedere alla barra laterale


15

Voglio dare al ruolo dell'editor l'accesso alla modifica della barra laterale e dei suoi contenuti. Ho un widget di testo lì dentro e per modificare questo widget di testo l'utente deve essere un amministratore - questo fa schifo. Come concedo l'autorizzazione al ruolo dell'editor che gli consentirà di modificare la barra laterale?



Sembra essere quello che sto cercando ma non capisco il codice. Sembra che sta creando un nuovo utente e assegnando ruoli invece di modificare un utente esistente
Howdy_McGee

Risposte:


21

La edit_theme_optionsfunzionalità dovrebbe consentire all'utente di modificare la barra laterale 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');

Modificare:

Questo dovrebbe funzionare per impedire all'editor di accedere a temi o 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 la possibilità di testarlo, ma li rimuove solo dal menu a cui potrebbero essere ancora in grado di accedervi digitando direttamente l'URL.


Funziona come un fascino, ma poi come posso impedirgli di accedere al menu o ai temi?
Howdy_McGee

Vedi la mia risposta modificata.
Elliott,

Errore irreversibile: chiamata alla funzione indefinita remove_menu_page () - Inoltre non sono preoccupato per il fatto che lo stiano digitando tramite URL. Dubito davvero che qualcuno sarà così dannoso e anche così sono solo temi e menu. E non riesco a fare +1 sul tuo post abbastanza! Grazie!
Howdy_McGee

Ci dispiace aggiunto codice sbagliato dovrebbe essere remove_submenu_pageanche se non avresti ancora avuto l'errore fatale. Ho modificato la mia risposta e verificato e tutto funziona bene per me?
Elliott,

1
Oh, questo sarebbe il motivo per cui allora è stato supportato solo dalla 3.1.0, non ho avuto bug dall'aggiornamento ... Suggerirei sempre l'aggiornamento all'ultima versione per proteggerlo.
Elliott,

1

Se vuoi solo configurarlo il più facilmente possibile, usa il plugin Members. La funzionalità che dovrai aggiungere è 'edit_theme_options'. Tieni presente che ciò garantirà molto di più della semplice area dei widget, inoltre garantirà all'editor l'accesso all'intero menu Aspetto. Vedere qui

http://wordpress.org/extend/plugins/members/

Se vuoi farlo a livello di codice, dovrai usare add_cap ().

$editor = get_role('editor');
$editor->add_cap('edit_theme_options');

Puoi inserire quel codice nel suo plugin e il gioco è fatto. O mettilo in Functions.php .


E se qualcuno utilizza l'editor di ruoli utente abbastanza popolare, puoi anche selezionare "Modifica opzioni tema" / "modifica_opzioni_del''o.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.