Acordă Acces Editorului la Bara Laterală

13 sept. 2011, 21:22:00
Vizualizări: 14.9K
Voturi: 16

Vreau să acord rolului de Editor acces pentru a edita bara laterală și conținutul acesteia. Am un widget text acolo și pentru a-l edita, utilizatorul trebuie să fie administrator - asta e neplăcut. Cum pot acorda permisiuni rolului de Editor care să-i permită accesul la editarea barei laterale?

2
Comentarii

Se pare că este ceea ce caut, dar nu înțeleg codul. Pare că el creează un utilizator nou și îi atribuie roluri în loc să modifice un utilizator existent

Howdy_McGee Howdy_McGee
13 sept. 2011 21:40:05
Toate răspunsurile la întrebare 2
8
23

Capacitatea edit_theme_options ar trebui să permită utilizatorului să editeze bara laterală așa cum este descris pe această pagină: http://codex.wordpress.org/Appearance_Widgets_SubPanel

Cod de adăugat în functions.php

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

Editare:

Aceasta ar trebui să funcționeze pentru a preveni editorul să acceseze temele sau meniurile

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');

Nu am avut încă ocazia să testez acest lucru, dar acesta doar le elimină din meniu; ei tot ar putea să le acceseze tastând direct URL-ul.

13 sept. 2011 21:49:59
Comentarii

Asta funcționează perfect, dar atunci cum îi împiedic să acceseze meniul sau temele?

Howdy_McGee Howdy_McGee
13 sept. 2011 22:06:04

Vezi răspunsul meu editat.

Elliott Elliott
13 sept. 2011 22:23:26

Eroare fatală: Apel către funcția nedefinită remove_menu_page() - De asemenea, nu mă îngrijorează că ar putea introduce manual URL-ul, chiar mă îndoiesc că cineva ar fi atât de rău intenționat, și chiar dacă ar fi, sunt doar teme și meniuri. Și nu te pot aprecia suficient pentru postare! Mulțumesc!

Howdy_McGee Howdy_McGee
13 sept. 2011 22:36:40

Scuze, am adăugat codul greșit, ar fi trebuit să fie remove_submenu_page deși tot nu ar fi trebuit să primești eroare fatală. Am editat răspunsul meu și am testat, totul funcționează bine la mine?

Elliott Elliott
13 sept. 2011 22:48:57

Tot primesc o eroare fatală cu "remove_submenu_page" - o adaug în partea de sus a fișierului Functions.php din folderul Themes, este corect?

Howdy_McGee Howdy_McGee
13 sept. 2011 22:53:27

Da, este corect, ce versiune de WordPress folosești în prezent?

Elliott Elliott
13 sept. 2011 22:55:07

Rulez versiunea 3.0.4 - am încercat să nu fac upgrade pentru că tot aud cât de problematică este atât pe frontend cât și pe backend.

Howdy_McGee Howdy_McGee
13 sept. 2011 23:00:54

A, deci de asta, funcționalitatea este suportată doar de la versiunea 3.1.0 în sus. Nu am întâlnit bug-uri de când am făcut upgrade... Aș sugera întotdeauna actualizarea la cea mai recentă versiune pentru a menține securitatea.

Elliott Elliott
13 sept. 2011 23:07:29
Arată celelalte 3 comentarii
1

Dacă dorești să configurezi acest lucru cât mai simplu posibil, folosește plugin-ul Members. Capabilitatea pe care va trebui să o adaugi este 'edit_theme_options'. Fii atent că acest lucru va oferi mai mult decât doar accesul la zona de widget-uri, ci va oferi editorului acces la întregul meniu Aspect. Vezi aici

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

Dacă dorești să faci acest lucru programatic, va trebui să folosești add_cap().

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

Poți adăuga acest cod într-un plugin separat și ai terminat. Sau poți să-l pui în functions.php.

13 sept. 2011 21:50:15
Comentarii

Și dacă cineva folosește User Role Editor, care este destul de popular, poți selecta și acolo opțiunea 'Edit Theme Options'/'edit_theme_options'.

User User
2 dec. 2018 05:55:53