ワードプレスのダッシュボードの表示内容を削除する

ユーザーが登録可能なサイトで、ワードプレスのダッシュボードに表示される項目を見せたくない場合があるかと存じます。
この場合、下記のようにテーマのFunctions.phpや、制作されているプラグイン等に記載されることでダッシュボード項目を個別に隠すことができます。

※WordPressイベントとニュース表示を購読者の場合消すコードの例です

function remove_dashboard_content() {
    global $wp_meta_boxes;
    if ( current_user_can('subscriber') ) {
        unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
    }
}
add_action('wp_dashboard_setup', 'remove_dashboard_content' );

その他にもif ( current_user_can(‘subscriber’) ) {の後の行に下記のように記載することで様々なダッシュボードの項目(ウィジェット)を隠すことができます。

// 現在の状況(概要)表示を消す
unset($wp_meta_boxes[‘dashboard’][‘normal’][‘core’][‘dashboard_right_now’]);

// 最近のコメント表示を消す
unset($wp_meta_boxes[‘dashboard’][‘normal’][‘core’][‘dashboard_recent_comments’]);

// プラグイン表示を消す
unset($wp_meta_boxes[‘dashboard’][‘normal’][‘core’][‘dashboard_plugins’]);

// クイック投稿欄を消す
unset($wp_meta_boxes[‘dashboard’][‘side’][‘core’][‘dashboard_quick_press’]);

// 最近の下書き表示を消す
unset($wp_meta_boxes[‘dashboard’][‘side’][‘core’][‘dashboard_recent_drafts’]);

//アクティビティーを消す
unset($wp_meta_boxes[‘dashboard’][‘side’][‘core’][‘dashboard_activity’]);

//WordPress へようこそ ! パネルを消す
remove_action(‘welcome_panel’, ‘wp_welcome_panel’);

ダッシュボード自体へのアクセスをできなくするには?

購読者の場合ダッシュボードへの管理画面メニューを消します。

function remove_menus(){  
     if ( current_user_can('subscriber') ) {
         remove_menu_page( 'index.php' );
     }
}  
add_action( 'admin_menu', 'remove_menus' ); 

また、下記のコードでユーザーがダッシュボードにアクセスしたときに強制的にプロフィールページにリダイレクトします。

function dashboard_redirect(){
   if ( current_user_can('subscriber') ) {
      wp_redirect(admin_url('profile.php'));
   }
}
add_action('load-index.php','dashboard_redirect');

WordPress ワードプレスのカスタマイズはWPドクターにお任せください。お気軽にご相談ご依頼をお送りください。