programing

WordPress의 편집기에 관리 전용 하위 메뉴 링크를 표시합니다.오류가 발생합니다.

codeshow 2023. 10. 4. 23:06
반응형

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_dumpfalse, 이렇게 해서 개발자들이 오류를 디버그합니다.. ;)

파일을 원래 파일로 복원해야 합니다(WordPress를 다시 업데이트하면 모든 핵심 파일이 원래 상태로 복원됩니다).

도움이 되길 바랍니다.

언급URL : https://stackoverflow.com/questions/40135693/show-admin-only-submenu-link-to-editors-in-wordpress-results-in-error

반응형