web-dev-qa-db-fra.com

Plugin pour restreindre l'accès aux pages de wp-admin

J'ai cherché toute la journée pour cela et je n'ai pas trouvé de plug-in qui me permette de restreindre l'accès à des pages spécifiques du compte administrateur de wp-admin.

Exemple: j'ai plusieurs utilisateurs sur mon site Web et je veux qu'ils ne voient que les pages qu'ils sont autorisés à modifier. Je l'ai fait manuellement par code et ça marche (voir code ci-dessous), mais je voulais un plugin qui me permette de faire la même chose.

Pourquoi? Parce que j'ai une équipe de support qui gère le site et qu'ils ne peuvent pas coder. Chaque fois que je dois ajouter une page ou autoriser quelqu'un d'autre sur une page, je dois y aller manuellement et éditer ce fichier.

Le plus proche de ma solution est le plugin Pages par utilisateur, sur CodeCanyon, mais cela ne fonctionne pas sur le backend. Quelque chose de similaire qui fonctionne sur le backend serait génial.

if(current_user_can('custom-editor')){
    function allowed_pages_custom_e($query) {
        global $pagenow,$post_type;
        if (is_admin() && $pagenow=='edit.php' && $post_type =='page') {
            $query->query_vars['post__in'] = array('11678');
        }
    }
    add_filter( 'parse_query', 'allowed_pages_custom_e' );
}
1
bfagundes
if( is_admin() ) {
    add_filter( 'init', 'custom_restrict_pages_from_admin' );
}

function custom_restrict_pages_from_admin() {
    global $pagenow;

    $arr = array(
        'update-core.php',
        'edit.php'
    );

    if( custom_check_user_roles() && in_array( $arr , $pagenow ) ) {
        //echo some custom messages or call the functions 
    } else {
        echo 'This page has restricted access to specific roles';
        wp_die();
    }
}

function custom_check_user_roles() {
    //restrict pages by user role 

    if( current_user_can( 'administrator' ) || current_user_can( 'editor' ) ) 
         return true;
    else { 
        echo 'Not allowed!'; 
        wp_die();
    }
}
1
Aniket Sahrawat

Utilisez Advanced Access Manager ( https://wordpress.org/plugins/advanced-access-manager/ ) plug-in pour restreindre les utilisateurs en arrière-plan en fonction de leurs rôles ....

Je pense que ce sera une meilleure solution pour votre problème.

0
Sumesh S