Jak mogę zezwolić roli edytora na zmianę ustawień motywu?


22

Właśnie założyłem nowego bloga dla przyjaciela i pomyślałem, że lepiej nie dawać mu od razu dostępu administratora jako środka ostrożności.

Dlatego utworzyłem nowego użytkownika jako edytor.

Ale potem zobaczyłem, że ten użytkownik nie może zmienić ustawień motywu, takich jak Tło i Nagłówek.

Czy istnieje prosty sposób, aby zezwolić roli edytora na edycję ustawień motywu w dwudziestu dziesięciu lub jego potomku? Zasadniczo powinien być w stanie zrobić wszystko, co administrator może zrobić. motyw, prawdopodobnie nawet zmieniający motywy.


2
Przypomina mi… Napisałem do tego wtyczkę: Opcje motywu dla redaktorów
fuxia

Odpowiedzi:


21

możesz dodać możliwości do roli edytora za pomocą obiektu roli i add_cap z twoich functions.php

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

możesz także usunąć możliwości:

$editor->remove_cap('delete_posts'); 

wystarczy spojrzeć na listę możliwości i ich znaczenie.


3
Fajnie, to działało! Na skróty: get_role('editor')->add_cap('edit_theme_options');:)
hakre

1
@hakre FYI Bezpośrednie przypisania zmiennych bezpośrednie a()->b()nie będą działać w wersjach PHP wcześniejszych niż 5.
hitautodestruct 10.04.2013

Ponieważ role są zwykle przechowywane w bazie danych, aktualizacja ról powinna odbywać się we wtyczce i tam w ramach aktywacji / dezaktywacji. Po prostu nie jest konieczne uruchamianie tego kodu w każdym procesie WordPress.
David

6

Ponieważ jest to pierwszy hit w Google dla tego pytania, uważam, że jest to właściwe miejsce na aktualizację:

Dla mnie nie udało mi się tego uruchomić edit_theme_options. Potem przeczytałem źródło wtyczki i odkryłem, że tak naprawdę jest manage_options. I zadziałało.

tl; dr:

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

działa dla mnie (w 2014 roku)


Świetne rzeczy, koleś ...
Abbas

Musiałem dodać jeszcze jedną linię dla WP> 4.0$role_object->add_cap('customize');
Alex


1

Kolejną świetną wtyczką jest User Role Editor (http://wordpress.org/extend/plugins/user-role-editor/). Jest podobny do posłów, ale o wiele bardziej podstawowy i prosty w użyciu. Ponadto programiści są zawsze w pobliżu, aby wysłuchać opinii i w razie potrzeby zaoferować pomoc.


0

To jest stare, ale oto nowy sposób, w jaki możesz to osiągnąć:

add_filter( 'user_has_cap',
function( $caps ) {
    if ( ! empty( $caps['edit_pages'] ) )
        $caps['edit_theme_options'] = true;
    return $caps;
} );
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.