ユーザの権限レベルに合わせて管理画面のメニューを非表示にする方法

6883 Views
WordPress
ユーザの権限レベルに合わせて管理画面のメニューを非表示にする方法

WordPressでサイトを制作していると、ここはカスタム投稿で作って登録した方が楽だな〜
っと制作者サイドでなる時があるのですが、お客さんには関係ない・編集させたくない!
になるケースがありました。

お客さんが編集する箇所は投稿者権限だけで十分な場合、発行するアカウントの権限レベルに合わせて「投稿」「カスタム投稿」「コメント」「ツール」などを非表示にする方法があるのでご紹介。

SNSでシェア♪

スポンサーリンク

以下のコードをfunctions.phpに貼り付ける

<?php
function remove_menu() {
	//ユーザの権限を取得
	global $current_user;
	$userLevel = array_keys($current_user->caps);

	//全権限共通で非表示にしたい項目
	remove_menu_page('link-manager.php');				//リンク
	remove_menu_page('edit-comments.php');				//コメント

	//権限ごとに非表示にしたい項目
	if ($userLevel == "administrator") {
		//管理者権限
	} else if ($userLevel == "editor") {
		//編集者権限
		remove_menu_page('tools.php');				//ツール
	} else if ($userLevel == "author") {
		//投稿者権限
		remove_menu_page('tools.php');				//ツール
		remove_menu_page('edit.php?post_type=news');	//お知らせ
	} else if ($userLevel == "contributor") {
		//寄稿者権限
	} else if ($userLevel == "subscriber") {
		//購読者権限
	}
}
add_action('admin_menu', 'remove_menu');

以上です!

remove_menu_page()の引数に設定したページが非表示にできるので、非表示にしたいページのスラッグを確認して実装してみてください。

SNSでシェア♪

スポンサーリンク

関連記事