사이드 바에 대한 편집자 액세스 권한 부여


15

편집자 역할에 사이드 바 및 해당 내용을 편집 할 수있는 권한을 부여하고 싶습니다. 나는 거기에 텍스트 위젯이 있고이 텍스트 위젯을 편집하려면 사용자가 관리자 일 필요가 있습니다. 사이드 바를 편집 할 수있는 편집자 역할에 권한을 부여하려면 어떻게합니까?


이것은 관련이있을 수 있습니다 : wordpress.stackexchange.com/questions/13413/…
Elliott

내가 찾고있는 것 같지만 코드를 이해하지 못합니다. 새 사용자를 만들고 기존 사용자를 편집하는 대신 역할을 할당하는 것처럼 보입니다
Howdy_McGee

답변:


21

edit_theme_options기능을 통해 사용자는이 페이지에 설명 된대로 사이드 바를 편집 할 수 있어야합니다. http://codex.wordpress.org/Appearance_Widgets_SubPanel

추가 할 코드 functions.php

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

편집하다:

이것은 에디터가 테마 나 메뉴에 접근하는 것을 막기 위해 작동합니다

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');

나는 이것을 테스트 할 기회를 얻지 못했지만 메뉴에서만 제거하고 URL을 직접 입력하여 액세스 할 수 있습니다.


그것은 매력처럼 작동하지만 어떻게 메뉴 또는 테마에 액세스하지 못하게합니까?
Howdy_McGee

내 편집 답변을 참조하십시오.
Elliott

치명적 오류 : 정의되지 않은 함수 remove_menu_page () 호출-또한 URL로 입력하는 것에 대해 걱정하지 않습니다. 누군가가 악의적일지도 모르고 테마와 메뉴 일뿐입니다. 그리고 귀하의 게시물을 충분히 +1 할 수 없습니다! 감사!
Howdy_McGee

죄송하지만 잘못된 코드를 추가 remove_submenu_page했지만 여전히 치명적인 오류가 발생해서는 안됩니다. 내 답변을 편집하고 테스트했으며 모든 것이 잘 작동합니까?
엘리엇

1
그렇기 때문에 3.1.0 이후로만 지원되었으므로 업그레이드 후 버그가 없었습니다 ... 보안을 유지하려면 항상 최신 버전으로 업그레이드하는 것이 좋습니다.
엘리엇

1

가능한 한 쉽게 구성하려면 멤버 플러그인을 사용하십시오. 추가해야 할 기능은 'edit_theme_options'입니다. 이는 위젯 영역뿐만 아니라 편집자에게 전체 모양 메뉴에 대한 액세스 권한도 부여합니다. 여길 봐

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

프로그래밍 방식으로이 작업을 수행하려면 add_cap ()을 사용해야합니다.

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

해당 코드를 자체 플러그인에 넣을 수 있습니다. 또는 functions.php에 넣으십시오 .


누구나 인기있는 사용자 역할 편집기를 사용하는 경우 '테마 옵션 편집'/ 'edit_theme_options'도 선택할 수 있습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.