편집자 역할이 테마 설정을 변경하도록하려면 어떻게해야합니까?


22

방금 친구를 위해 새 블로그를 설정했으며 예방 조치로 즉시 관리자 액세스 권한을 부여하지 않는 것이 좋습니다.

따라서 새로운 사용자를 편집자로 만들었습니다.

그러나이 사용자는 배경 및 헤더와 같은 테마 설정을 변경할 수 없다는 것을 알았습니다.

편집자 역할이 Twenty Ten 또는 Child의 테마 설정을 편집 할 수있는 쉬운 방법이 있습니까? 기본적으로 관리자가 등록 할 수있는 모든 작업을 수행 할 수 있어야합니다. 테마, 아마도 심지어 테마를 변경하는 것.


2
알림 :… 플러그인을 작성했습니다 : 편집자를위한 테마 옵션
fuxia

답변:


21

role 객체와 add_cap을 사용하여 에디터 역할에 기능을 추가 할 수 있습니다.

<?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');
shorties의 경우

1
@hakre FYI 이와 같은 직접 변수 할당은 a()->b()5 이전의 PHP 버전에서는 작동하지 않습니다.
hitautodestruct 8:10에서

역할은 일반적으로 데이터베이스에 저장되므로 플러그인에서 활성화 / 비활성화 후크 내에서 업데이트 역할을 수행해야합니다. 모든 워드 프레스 프로세스에서이 코드를 실행할 필요는 없습니다.
David

6

이것은이 질문에 대한 Google의 첫 번째 조회이므로 업데이트에 적합한 곳이라고 생각합니다.

나를 위해 그것을 통해 작동시킬 수 없었습니다 edit_theme_options. 그런 다음 플러그인 소스를 읽고 실제로임을 알았습니다 manage_options. 그리고 효과가있었습니다.

tl; dr :

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

나를 위해 일한다 (2014 년)


위대한 물건 친구 ...
Abbas

WP> 4.0에 대해 한 줄을 더 추가해야 함$role_object->add_cap('customize');
Alex


1

또 다른 훌륭한 플러그인은 User Role Editor (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;
} );
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.