답변:
이것을 테마에 추가하십시오 functions.php
:
// add editor the privilege to edit theme
// get the the role object
$role_object = get_role( 'editor' );
// add $cap capability to this role object
$role_object->add_cap( 'edit_theme_options' );
WP_Role
admin_init
그리고 만if !$role_object->has_cap('edit_theme_options')
편집 : WP 4.9 업데이트 및 편집기 메뉴 항목 숨기기
사용자가 탐색 메뉴를 변경할 수 있지만 모양 아래의 다른 옵션은 변경할 수 없도록하려면 다음을 사용하십시오.
// Do this only once. Can go anywhere inside your functions.php file
$role_object = get_role( 'editor' );
$role_object->add_cap( 'edit_theme_options' );
위의 코드는 데이터베이스를 영구적으로 변경하므로 관리자 패널을 새로 고친 후에이 코드 전체를 주석 처리 할 수 있습니다.
이제 편집자에게 보이는 모든 옵션이 표시됩니다. 다음과 같이 다른 옵션을 숨길 수 있습니다.
function hide_menu() {
if (current_user_can('editor')) {
remove_submenu_page( 'themes.php', 'themes.php' ); // hide the theme selection submenu
remove_submenu_page( 'themes.php', 'widgets.php' ); // hide the widgets submenu
remove_submenu_page( 'themes.php', 'customize.php?return=%2Fwp-admin%2Ftools.php' ); // hide the customizer submenu
remove_submenu_page( 'themes.php', 'customize.php?return=%2Fwp-admin%2Ftools.php&autofocus%5Bcontrol%5D=background_image' ); // hide the background submenu
// these are theme-specific. Can have other names or simply not exist in your current theme.
remove_submenu_page( 'themes.php', 'yiw_panel' );
remove_submenu_page( 'themes.php', 'custom-header' );
remove_submenu_page( 'themes.php', 'custom-background' );
}
}
add_action('admin_head', 'hide_menu');
hide_menu()
함수 의 마지막 3 줄은 내 테마에 맞는 테마입니다. 관리자 패널에서 숨기려는 하위 메뉴를 클릭하여 두 번째 매개 변수를 찾을 수 있습니다. 그러면 URL은 example.com/wp-admin/themes.php?page= yiw_panel 과 같습니다.
따라서이 예에서 remove_submenu_page()
함수 의 두 번째 매개 변수는yiw_panel
관리자 메뉴 구조를 보면 링크가 기능 과 nav-menus.php
관련이있는edit_theme_options
것 같습니다 . 이 기능을 포함하도록 편집자 역할을 수정할 수 있습니까? 이것은 또한 위젯을 편집 할 수있는 옵션을 제공합니다. 이것이 문제인지 모르겠습니다. 모든 메뉴 Ajax 기능은이 기능에 의해 제한되므로 메뉴 편집을위한 관리 메뉴 기능을 변경하면 작동하지 않을 수 있습니다.
설치 플러그인 "사용자 역할 편집기"-edit_theme_options 켜기-플러그인 설치 관리-편집자를 위해 "위젯"및 "스위치 테마"를 끕니다.)
나는 당신의 메뉴가 다음과 같은 방식으로 작동한다는 것을 발견했습니다 : 설치 플러그인 " User Role Editor "그리고 편집자 역할 및 기타 조건을 편집 할 수 있습니다. edit_theme_options를 켜십시오. 그러나 이제 : "테마", "위젯"아래에 "메뉴"-옵션이 표시됩니다. 나를 위해 : "메뉴"를 클릭 한 후 (편집자로) 채워진 옵션이 보이지 않지만 비어 있습니다. 따라서 플러그인 "사용자 역할 편집기"를 비활성화하고 "메뉴"에 대해 채워진 옵션이 올바르게 나타납니다. 플러그인 "사용자 역할 편집기"를 비활성화하면 편집기가 활성화 된 상태로 유지됩니다! 나에게 좋을지도 몰라