Як можна дозволити редактору змінити параметри теми?


22

Я щойно налаштував для свого друга новий блог і подумав, що краще не надавати йому адміністраторського доступу одразу в якості запобіжних заходів.

Тому я створив нового користувача як редактор.

Але потім я побачив, що цей користувач не може змінити параметри теми, такі як Фон та Заголовок.

Чи є простий спосіб дозволити ролі редактора редагувати будь-які налаштування теми в "Двадцять десять" або "Дитина"? В основному він повинен бути в змозі зробити все, що може зробити адміністратор. Тема, ймовірно, навіть змінює теми.


2
Нагадує ... Я написав плагін для цього: Параметри теми для редакторів
fuxia

Відповіді:


21

ви можете додати можливості до ролі редактора, використовуючи об’єкт ролі та add_cap від вас функції.php

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

ви також можете видалити можливості:

$editor->remove_cap('delete_posts'); 

просто погляньте на перелік можливостей і що означає кожна з них.


3
Класно, що так вийшло! Для шортиків: get_role('editor')->add_cap('edit_theme_options');:)
hakre

1
@hakre FYI Прямі присвоєння змінних, подібні до цього a()->b(), не працюватимуть у версіях PHP до 5.
hitautodestruct

Оскільки ролі, як правило, зберігаються в базі даних, оновлення ролей повинно здійснюватися в плагіні, а там - в гачку активації / деактивації. Просто не потрібно запускати цей код у кожному процесі WordPress.
Девід

6

Оскільки це перше звернення в Google для цього питання, я вважаю, що це правильне місце для оновлення:

Для мене я не міг змусити його працювати edit_theme_options. Потім я прочитав джерело плагінів і дізнався, що це насправді manage_options. І це спрацювало.

tl; dr:

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

працює для мене (у 2014 році)


Чудовий чувак ...
Аббас

Потрібно додати ще один рядок для WP> 4.0$role_object->add_cap('customize');
Alex

5

Чи їм не потрібна можливість "редагувати_теми"? Для редагування можливостей, пов’язаних із кожною роллю, ви можете використовувати плагін http://wordpress.org/extend/plugins/members/ для Justin Tadlocks .


1

Ще один чудовий плагін - редактор ролей користувача (http://wordpress.org/extend/plugins/user-role-editor/). Він схожий на учасників, але набагато більш базовий і простий у використанні. Плюс, розробники завжди поряд, щоб слухати відгуки та пропонувати допомогу, якщо це потрібно.


0

Це старе, але ось новий спосіб, як ви могли цього досягти:

add_filter( 'user_has_cap',
function( $caps ) {
    if ( ! empty( $caps['edit_pages'] ) )
        $caps['edit_theme_options'] = true;
    return $caps;
} );
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.