Daj edytorowi dostęp do paska bocznego

15

Chcę dać Edytorowi rolę dostępu do edycji paska bocznego i jego zawartości. Mam tam widget tekstowy i aby go edytować, użytkownik musi być administratorem - to do bani. Jak przyznać uprawnienia roli redaktora, która zapewni mu dostęp do edycji paska bocznego?

Howdy_McGee
źródło
Może to być powiązane: wordpress.stackexchange.com/questions/13413/…
Elliott,
Wygląda na to, że tego szukam, ale nie rozumiem kodu. Wygląda na to, że tworzy nowego użytkownika i przypisuje role zamiast edytować istniejącego użytkownika
Howdy_McGee

Odpowiedzi:

21

Ta edit_theme_optionsfunkcja powinna umożliwić użytkownikowi edycję paska bocznego zgodnie z opisem na tej stronie: http://codex.wordpress.org/Appearance_Widgets_SubPanel

Kod do dodania functions.php

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

Edytować:

Powinno to działać, aby uniemożliwić edytorowi dostęp do motywów lub 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');

Nie miałem okazji tego przetestować, ale usuwa je tylko z menu, do którego mogą nadal mieć dostęp, wpisując bezpośrednio adres URL.

Elliott
źródło
To działa jak urok, ale w jaki sposób mam uniemożliwić im dostęp do menu lub motywów?
Howdy_McGee
Zobacz moją zredagowaną odpowiedź.
Elliott,
Błąd krytyczny: Wywołanie niezdefiniowanej funkcji remove_menu_page () - Nie martwię się też o to, że wpisują ją według adresu URL. Naprawdę wątpię, aby ktoś był tak złośliwy, a mimo to są to tylko motywy i menu. I nie mogę dać +1 Twojemu postowi wystarczająco! Dzięki!
Howdy_McGee
Przykro nam, ale dodałem nieprawidłowy kod, remove_submenu_pagechociaż nadal nie powinieneś mieć błędu krytycznego. Zredagowałem swoją odpowiedź i przetestowałem i czy wszystko działa dobrze dla mnie?
Elliott
1
Och, właśnie dlatego wtedy był obsługiwany dopiero od wersji 3.1.0, nie miałem żadnych błędów od czasu aktualizacji ... Zawsze sugeruję aktualizację do najnowszej wersji, aby zapewnić jej bezpieczeństwo.
Elliott,
1

Jeśli chcesz tak łatwo skonfigurować, skorzystaj z wtyczki Members. Możliwości, które musisz dodać, to „edit_theme_options”. Należy pamiętać, że zapewni to więcej niż tylko obszar widżetów, daje to również edytorowi dostęp do całego menu Wygląd. Spójrz tutaj

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

Jeśli chcesz to zrobić programowo, musisz użyć add_cap ().

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

Możesz wrzucić ten kod do własnej wtyczki i gotowe. Lub umieść go w functions.php .

eddiemoya
źródło
A jeśli ktoś korzysta z dość popularnego edytora ról użytkownika, możesz tam również wybrać opcję „Edytuj opcje motywu” / „opcje_edytuj_wydaj”.