WordPress의 편집기에 관리 전용 하위 메뉴 링크를 표시합니다.오류가 발생합니다.
관리 메뉴에 하위 메뉴 항목을 추가하는 플러그인을 사용하고 있습니다.
add_submenu_page( 'propertyhive', 'Property Hive Settings', 'Settings', 'manage_options', 'ph-settings', 'callback_fn' );
기재되어 있기 때문에manage_options
관리자에게만 나타납니다.편집자분들께 보여드려야 하는데요.제가 제 테마의 기능에 시도한 것은 다음과 같습니다.php 파일:
add_action( 'admin_menu', 'custom_settings_menu', 99 );
function custom_settings_menu()
{
// Remove the submenu item first
remove_submenu_page( 'propertyhive', 'ph-settings' );
// Add it again but with different role (manage_propertyhive)
// This role does exist as other submenu items ue it
add_submenu_page( 'propertyhive', 'Property Hive Settings', 'Settings', 'manage_propertyhive', 'ph-settings', 'my_theme_callback_fn' );
}
하위 메뉴 항목이 올바르게 표시되지만 다음 오류가 발생합니다.
Sorry, you are not allowed to access this page.
이것의 원인에 대해 명백한 것을 보거나 성향이 있는 사람이 있습니까?
참고: manage_propertyhive 기능이 분명히 존재합니다.
manage_propertyhive'는 정의된 기능이 아니기 때문에 아무도 해당 메뉴에 액세스할 수 없기 때문에 이러한 현상이 발생한다고 생각합니다.여기에 나와 있는 미리 정의된 워드프레스 기능 중 하나를 사용하거나 여기에 나와 있는 지침에 따라 'manage_propertyhive'와 같은 사용자 정의 기능을 정의할 수 있습니다.
도움이 되길 바랍니다!
1) 당신은 확신합니까?add_submenu_page()
플러그인의 기능이 올바르게 복사되었습니까?add_submenu_page()
6개의 매개변수만 허용합니다. - 질문에는 7개의 매개변수가 있습니다.propertyhive
능력이 되는 것과manage_options
존재하는menu_slug
(그것은 당혹스럽습니다)
https://developer.wordpress.org/reference/functions/add_submenu_page/
2) 편집자뿐만 아니라 관리자들도 그 기능을 가지고 있다고 생각합니다.manage_propertyhive
? 확실하지 않다면요.
3) 샘플 코드에서 새 모델에 대한 콜백 기능propertyhive
하위 메뉴 페이지는my_theme_callback_fn
- 여기에 정확한 콜백 기능을 넣으셨습니까?
4) 하위 메뉴 페이지를 편집기에 추가한다고 해서 반드시 해당 페이지에 액세스할 수 있는 것은 아닙니다. 추가 기능 확인을 위해 플러그인을 확인했습니까?콜백 기능의 코드나 플러그인 기능의 다른 일부 기능에서 다시 체크가 되어 편집기에 일부 기능이 누락되어 있을 수 있습니다.
이 방법이 효과가 있을 것입니다.
function add_theme_caps() {
$role = get_role( 'editor' );
$caps = (array)$role->capabilities;
if(!array_key_exists('manage_propertyhive', $caps)) {
$role->add_cap( 'manage_propertyhive' );
}
}
add_action( 'admin_init', 'add_theme_caps');
기능 권한을 설정했다고 가정할 때 상위 페이지가 하위 메뉴 페이지에 대한 액세스를 허용하지 않을 수 있습니다. 사용자가 상위 페이지에 액세스할 수 있는지 확인하십시오.
사용자가 페이지에 접근할 수 있는지 확인하는 기능입니다...false를 반환하면 오류가 표시됩니다...
https://github.com/WordPress/WordPress/blob/4.6.1/wp-admin/includes/plugin.php#L1697-L1763
다른 몇 가지를 확인하는 것 외에도 사용자가 부모 페이지에 접근할 수 있는지도 확인합니다.
안 이하여 합니다하는 것이 var_dump
false
, 이렇게 해서 개발자들이 오류를 디버그합니다.. ;)
파일을 원래 파일로 복원해야 합니다(WordPress를 다시 업데이트하면 모든 핵심 파일이 원래 상태로 복원됩니다).
도움이 되길 바랍니다.
언급URL : https://stackoverflow.com/questions/40135693/show-admin-only-submenu-link-to-editors-in-wordpress-results-in-error
'programing' 카테고리의 다른 글
CSS만 사용하여 divon을 다른 요소 위에 호버링합니다. (0) | 2023.10.04 |
---|---|
조회 결과를 MySQL의 변수로 설정 (0) | 2023.10.04 |
$parse 대 $eval ? 어떤 것이 최선의 방법입니까? (0) | 2023.10.04 |
Objective-C 클래스에서 Swift 프로토콜 가져오기 (0) | 2023.10.04 |
AngularJS Reference Error: $window가 정의되지 않았습니다. (0) | 2023.10.04 |