Acordă Acces Editorului la Bara Laterală
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?

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.

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

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!

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?

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?

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.

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.
