Come posso consentire al Ruolo Editor di modificare le Impostazioni del Tema?

24 mar 2011, 23:32:55
Visualizzazioni: 29.3K
Voti: 24

Ho appena configurato un nuovo Blog per un amico e ho pensato che fosse meglio non dargli subito l'accesso come Amministratore per precauzione.

Ho quindi creato un nuovo utente con il ruolo di Editor.

Ma poi ho notato che questo utente non può modificare le Impostazioni del Tema come lo Sfondo e l'Header.

C'è un modo semplice per consentire al ruolo Editor di modificare qualsiasi impostazione del tema in Twenty Ten o in un tema Child? Dovrebbe essere in grado di fare praticamente tutto ciò che può fare un Amministratore relativamente al tema, probabilmente anche cambiare i temi.

1
Commenti

Mi ricorda... ho scritto un plugin per questo: Opzioni del tema per gli editori

fuxia fuxia
14 set 2014 17:22:49
Tutte le risposte alla domanda 5
3
23

Puoi aggiungere capacità al ruolo di editor utilizzando l'oggetto ruolo e add_cap dal tuo functions.php

<?php
   // ottieni l'oggetto ruolo
   $editor = get_role('editor');
   // aggiungi la capacità $cap a questo oggetto ruolo
   $editor->add_cap('edit_theme_options');
?>

Puoi anche rimuovere le capacità:

$editor->remove_cap('delete_posts'); 

dai un'occhiata alla lista delle capacità e a ciò che ciascuna significa.

25 mar 2011 01:06:25
Commenti

Fantastico, ha funzionato! Per i più pigri: get_role('editor')->add_cap('edit_theme_options'); :)

hakre hakre
25 mar 2011 02:55:28

@hakre FYI Assegnazioni dirette di variabili come a()->b() non funzioneranno in versioni di PHP precedenti alla 5.

hitautodestruct hitautodestruct
10 apr 2013 11:40:19

Poiché i ruoli sono tipicamente memorizzati nel database, l'aggiornamento dei ruoli dovrebbe essere fatto in un plugin e all'interno di un hook di attivazione/disattivazione. Semplicemente non è necessario eseguire questo codice in ogni processo WordPress.

David David
14 mar 2016 10:35:52
2

Dato che questo è il primo risultato su Google per questa domanda, sento che è il posto giusto per un aggiornamento:

Nel mio caso, non sono riuscito a farlo funzionare con edit_theme_options. Poi ho letto il codice sorgente del plugin e ho scoperto che in realtà serve manage_options. E ha funzionato.

In breve:

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

funziona per me (nell'anno 2014)

8 lug 2014 13:54:52
Commenti

Grandi cose, ragazzo...

Abbas Abbas
30 dic 2015 07:59:46

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

Alex Alex
6 mar 2017 05:33:22
0

Non hanno bisogno della capacità "edit_themes"? Puoi utilizzare il plugin di Justin Tadlock http://wordpress.org/extend/plugins/members/ per modificare le capacità associate a ciascun ruolo.

25 mar 2011 01:03:00
0

Un altro ottimo plugin è User Role Editor (http://wordpress.org/extend/plugins/user-role-editor/). È simile a Members, ma molto più basilare e semplice da usare. Inoltre, gli sviluppatori sono sempre disponibili per ascoltare feedback e offrire assistenza, se necessario.

12 apr 2012 08:19:53
0

Questo è vecchio, ma ecco un modo più recente per ottenere lo stesso risultato:

add_filter( 'user_has_cap',
function( $caps ) {
    if ( ! empty( $caps['edit_pages'] ) )
        $caps['edit_theme_options'] = true;
    return $caps;
} );
14 mar 2016 06:28:13