Come posso consentire al ruolo dell'editor di modificare le impostazioni del tema?


22

Ho appena creato un nuovo blog per un amico e ho pensato che fosse meglio non dargli immediatamente l'accesso come amministratore per precauzione.

Ho quindi creato un nuovo utente come editor.

Ma poi ho visto che questo utente non può modificare le impostazioni del tema come sfondo e intestazione.

C'è un modo semplice per consentire al ruolo dell'editor di modificare le impostazioni di un tema in Twenty Ten o a Child of it? In pratica dovrebbe essere in grado di fare qualsiasi cosa un amministratore possa fare reg. il tema, probabilmente anche cambiando temi.


2
Mi ricorda ... Ho scritto un plugin per questo: Opzioni a tema per i redattori
fuxia

Risposte:


21

puoi aggiungere funzionalità al ruolo dell'editor usando l'oggetto ruolo e add_cap dal tuo function.php

<?php
   // get the the role object
   $editor = get_role('editor');
   // add $cap capability to this role object
   $editor->add_cap('edit_theme_options');
?>

puoi anche rimuovere le funzionalità:

$editor->remove_cap('delete_posts'); 

dai un'occhiata all'elenco delle capacità e al significato di ognuna.


3
Bene, ha funzionato! Per gli shorties: get_role('editor')->add_cap('edit_theme_options');:)
Hacre il

1
@hakre FYI Assegnazioni di variabili dirette del genere a()->b()non funzioneranno nelle versioni PHP precedenti alla 5.
hitautodestruct

Poiché i ruoli sono in genere archiviati nel database, l'aggiornamento dei ruoli deve essere eseguito in un plug-in e all'interno di un hook di attivazione / disattivazione. Non è necessario eseguire questo codice su ogni processo di WordPress.
David

6

Poiché questo è il primo successo su Google per questa domanda, ritengo che questo sia il posto giusto per un aggiornamento:

Per me, non sono riuscito a farlo funzionare via edit_theme_options. Poi ho letto la fonte del plugin e ho scoperto che in realtà è manage_options. E ha funzionato.

tl; dr:

$role_object = get_role( 'editor' );
$role_object->add_cap( 'manage_options' );

funziona per me (nell'anno 2014)


Grandi cose amico ...
Abbas il

Necessario aggiungere un'altra riga per WP> 4.0$role_object->add_cap('customize');
Alex


1

Un altro ottimo plugin è User Role Editor (http://wordpress.org/extend/plugins/user-role-editor/). È simile ai membri, ma molto più semplice e di base. Inoltre, gli sviluppatori sono sempre in giro per ascoltare il feedback e offrire assistenza, se necessario.


0

Questo è vecchio, ma ecco un modo più nuovo per raggiungere questo obiettivo:

add_filter( 'user_has_cap',
function( $caps ) {
    if ( ! empty( $caps['edit_pages'] ) )
        $caps['edit_theme_options'] = true;
    return $caps;
} );
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.