JOURNAL クリエイティブとマーケティングの話

WordPressダッシュボードの項目を非表示にする方法

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ダッシュボードの項目を非表示にする方法でした。

クライアントワークをしているとわりと要望のあるところだと思うので、すぐ使えるようにしておくとよいかと思います。