ワードプレスのダッシュボードの表示内容を削除する
ユーザーが登録可能なサイトで、ワードプレスのダッシュボードに表示される項目を見せたくない場合があるかと存じます。
この場合、下記のようにテーマの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');