web-dev-qa-db-ja.com

Wp-admin内のページへのアクセスを制限するためのプラグイン

私はこれを一日中検索しましたが、ユーザーロールに裏付けられたwp-adminの特定のページへのアクセスを制限できるプラグインを見つけることができませんでした。

例:私は自分のウェブサイトに何人かのユーザがいて、それらが編集を許可されているページだけを見ることを望みます。私はこれをコードで手作業で行っていてそれは動いています(下記のコードを見てください)が、同じことができるプラグインが欲しかったのです。

どうして?私はそのサイトを管理するサポートチームがあり、彼らはコードを書くことができないからです。ページを追加したり、あるページに他のユーザーを許可したりする必要があるたびに、手動でそこに移動してそのファイルを編集する必要があります。

私が最も解決したのはCodeCanyonのPages by User Roleプラグインですが、バックエンドでは動作しません。バックエンドでも同じようなことがうまくいくでしょう。

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

Advanced Access Manager( https://wordpress.org/plugins/advanced-access-manager/ )プラグインを使用して、ロールに応じてバックエンドのユーザーを制限します。

私はこれがあなたの問題に対するより良い解決策になると思います。

0
Sumesh S