WordPressの操作に慣れていないクライアントに納品する場合、ダッシュボードのサイドバーにある不要な項目を非表示にしておいた方が親切です。
特に「外観」はHTMLやPHPなどを編集する必要があるため、むやみに触ると大惨事になりかねません。
ということで今回は、WordPressダッシュボードの項目を非表示にする、以下の3つの方法をご紹介します。
- すべてのユーザーのダッシュボードの項目を非表示にする方法
- 管理者以外のユーザーはダッシュボードの項目を非表示にする方法
- 特定のユーザー以外はダッシュボードの項目を非表示にする方法
プラグインは使用しませんので、お使いのテーマのfunctions.phpに記述してください。
すべてのユーザーのダッシュボードの項目を非表示にする方法
function remove_menus () {
remove_menu_page( 'index.php' ); //ダッシュボード
remove_menu_page( 'edit.php' ); //投稿
remove_menu_page( 'upload.php' ); //メディア
remove_menu_page( 'edit.php?post_type=page' ); //固定ページ
remove_menu_page( 'edit-comments.php' ); //コメント
remove_menu_page( 'themes.php' ); //外観
remove_menu_page( 'plugins.php' ); //プラグイン
remove_menu_page( 'users.php' ); //ユーザー
remove_menu_page( 'tools.php' ); //ツール
remove_menu_page( 'options-general.php' ); //設定
}
add_action( 'admin_menu', 'remove_menus' );
管理者以外のユーザーはダッシュボードの項目を非表示にする方法
function remove_menus () {
if (!current_user_can( 'administrator' )) {
remove_menu_page( 'index.php' ); //ダッシュボード
remove_menu_page( 'edit.php' ); //投稿
remove_menu_page( 'upload.php' ); //メディア
remove_menu_page( 'edit.php?post_type=page' ); //固定ページ
remove_menu_page( 'edit-comments.php' ); //コメント
remove_menu_page( 'themes.php' ); //外観
remove_menu_page( 'plugins.php' ); //プラグイン
remove_menu_page( 'users.php' ); //ユーザー
remove_menu_page( 'tools.php' ); //ツール
remove_menu_page( 'options-general.php' ); //設定
}
}
add_action( 'admin_menu', 'remove_menus' );
特定のユーザー以外はダッシュボードの項目を非表示にする方法
ユーザーIDが「1」のユーザー以外がログインした場合、ダッシュボードの項目が非表示になります。
下記ソース3行目の「1」を任意のユーザーIDに書き換えてください。
function remove_menus () {
$user = wp_get_current_user();
if( $user -> get( 'user_login' ) !== "1") { //ユーザーIDが「1」以外で非表示
remove_menu_page( 'index.php' ); //ダッシュボード
remove_menu_page( 'edit.php' ); //投稿
remove_menu_page( 'upload.php' ); //メディア
remove_menu_page( 'edit.php?post_type=page' ); //固定ページ
remove_menu_page( 'edit-comments.php' ); //コメント
remove_menu_page( 'themes.php' ); //外観
remove_menu_page( 'plugins.php' ); //プラグイン
remove_menu_page( 'users.php' ); //ユーザー
remove_menu_page( 'tools.php' ); //ツール
remove_menu_page( 'options-general.php' ); //設定
}
}
add_action( 'admin_menu', 'remove_menus' );
まとめ
以上、WordPressダッシュボードの項目を非表示にする方法でした。
クライアントワークをしているとわりと要望のあるところだと思うので、すぐ使えるようにしておくとよいかと思います。