web-dev-qa-db-ja.com

管理者以外のユーザーからダッシュボードを隠す

ダッシュボードを管理者以外のユーザーから完全に非表示にして、[新規投稿]ページと[投稿の編集]ページのみにアクセスできるようにすることはできますか?ありがとう。

7
jay

使いやすさに関しては、特にWordPressの管理者がPHPにあまり慣れていない場合、私は2番目のbrasofloのプラグイン推奨( Adminimize )を推奨します。

完全を期すために、これはプログラムで行われる方法です。

/* Remove the "Dashboard" from the admin menu for non-admin users */
function wpse52752_remove_dashboard () {
    global $current_user, $menu, $submenu;
    get_currentuserinfo();

    if( ! in_array( 'administrator', $current_user->roles ) ) {
        reset( $menu );
        $page = key( $menu );
        while( ( __( 'Dashboard' ) != $menu[$page][0] ) && next( $menu ) ) {
            $page = key( $menu );
        }
        if( __( 'Dashboard' ) == $menu[$page][0] ) {
            unset( $menu[$page] );
        }
        reset($menu);
        $page = key($menu);
        while ( ! $current_user->has_cap( $menu[$page][1] ) && next( $menu ) ) {
            $page = key( $menu );
        }
        if ( preg_match( '#wp-admin/?(index.php)?$#', $_SERVER['REQUEST_URI'] ) &&
            ( 'index.php' != $menu[$page][2] ) ) {
                wp_redirect( get_option( 'siteurl' ) . '/wp-admin/edit.php');
        }
    }
}
add_action('admin_menu', 'wpse52752_remove_dashboard');
13
Johannes Pille

プラグイン Adminimize を使ってそれを行うことができます。

ユーザーロールに基づいてダッシュボード(およびその他の多くのもの)を非表示にすることができます。ダッシュボードを非表示にする場合は、ユーザーをどのページにリダイレクトするかを定義できます。

よくわかりませんが、ダッシュボードをブロックするようにユーザーロールを変更することはできません(最も低いロールでもアクセスできるため)。

しかし、AdminimizeとRoleプラグインを組み合わせると、きめ細かい管理インターフェースを実現できます。

3
brasofilo

この2ページもダッシュボードの一部です。投稿を編集するためのアクセス権を与えている場合は、投稿リストへのアクセス権を与えていることを意味します。最も能力の低い役割である購読者も、ダッシュボードの一部であるプロファイルページにアクセスできます。あなたの最良の選択肢はフロントエンドの投稿追加/プロフィール編集フォームでしょう。

0

あなたは "ユーザーロールエディタ"と呼ばれるプラグインを使用することができます。

0
Nasir Zia