WordPressで権限やユーザーごとに管理画面のサイドメニュー表示を切り分ける

  • このエントリーをはてなブックマークに追加

WordPressのサイドメニュー
デフォルトだといろいろな項目が表示されているWordPressの管理画面のサイドメニュー。
慣れていない人にはわかりづらいですよね。
また、権限によってデフォルトで非表示にしてくれたりもしますが、この部分は見せたくないな…ということも多いと思います。

今回はWordPressで権限やユーザーごとにサイドメニューの表示を変更する方法をご紹介します。

権限の種類について

まずはデフォルトの権限の種類についてご紹介します。
基本的には5つの権限が用意されています。
 
管理者
(スラッグ: ‘administrator’)
シングルサイト内のすべての管理機能にアクセスできるユーザー。
編集者
(スラッグ: ‘editor’)
他のユーザーの投稿を含むすべての投稿を公開、管理できるユーザー。
投稿者
(スラッグ: ‘author’)
自身の投稿を公開、管理できるユーザー。
寄稿者
(スラッグ: ‘contributor’)
自身の投稿を編集・管理できるが、公開はできないユーザー。
購読者
(スラッグ: ‘subscriber’)
プロフィール管理のみを実行できるユーザー。
この権限を使用して、サイドメニューの表示を変更していきましょう!

function.phpに記述する

設定についてはfunction.phpに記述していきます。

必ずバックアップを取りながら作業を進めてください。

サイドメニューの非表示用のコード

まずはサイドメニューの非表示用のコードをざっとご紹介します。
これだけをそのまま書くと、全権限のメニューが非表示になります。

例えば「投稿」などの親にあたるメニューについては、関数「remove_menu_page」を使って「○○.php」のような形で記述をしたらすぐに消えます。

カスタム投稿は「edit.php」の末尾に「?post_type=○○」のように記述をしてください。○○部分はカスタム投稿のスラッグを入れます。

サブメニュー部分は関数「remove_submenu_page」を使います。
まずは親の指定をして、そのあとURLやスラッグを指定します。

「設定」内にあるプラグインの指定は少々他と型が違います。
今回は一例としてパンくずナビゲーションを実装してくれる「Breadcrumb NavXT」を一例に出しました。
たいていはURL末尾についている「page=○○」の○○の部分を書くと消えますが、プラグインにもよるので自分で色々確かめて見てください。

権限ごとに振り分けて指定する

では権限ごとに振り分けて指定していきましょう。
例えば管理者より下の権限は設定メニューを非表示にしたい、という場合は以下のように書けば一気に非表示にすることができます。


もちろん特定の権限だけでも指定できます。


権限だけではなく、特定のユーザーに対しても振り分けることができます。
ユーザーIDを取得して、後は該当のユーザーのIDを入れるだけです。
IDはユーザー詳細のURLなどに記載されています。


例えば管理者ではあるけど、そのユーザーには非表示にしたい…というときにも以下のような記述で使えます。
管理者より下の権限、またはユーザーID:3(この人は本来であれば管理者権限)の時にプラグインメニューが非表示になります。


これらを駆使すると、管理画面のメニューをきれいにできます。
プラグインなどを使用する方法もありますが、単純な物であればコード上で管理した方が分かりやすいと思います。

おまけ:CSSで非表示にする

ちなみにプラグインなど、どうしても消えない!という場合があります。
そんな時はcssで消すのもありです。

このようにfunction.phpに記述をします。

何をしているかというと、サイドメニューのliタグについているidをコンソールなどで確認して、そのidに対して非表示の設定を行っています。
あまりスマートなやり方ではないと思うので多用はしないほうがいいと思いますが、どうしても消えない場合は試してみるのもありだと思います。


ぜひ試してみてください!




執筆者:工藤[ WEBデザイナー ]

WEBデザイナー。 最近はWordPressを触るのが好きです。よろしくお願いします。

関連記事

プログラミング

SharePoint REST APIを使用してリストの情報を取得し、headerにナビを作る

SharePointで作成したリストの情報をREST APIを使用して取得してみましょう。 今回は、APIで取得した情報を、headerにリンクとして差し込んでみます。サイト全体共通のナビでも、リストを使用すると、一か所で管理できるので便利です。 目次1 前提条件2 1.REST APIで情報を取得2.1 REST APIのURL2.2 データを取得する処理3 2.取得した情報をheaderに表示 前提条件 SharePoint Online モダンUI カスタムJSが使用で […]

プログラミング

jQuery+PHPで大容量ファイルを分割アップロードするお話

ファイルのアップロードを行う際に注意しないといけないのが「アップロード容量」と「タイムアウト」です。 どちらもサーバーの設定に関わるところでレンタルサーバーでは対処しきれないところもあり、大容量にするとそれだけアップロードに時間がかかりタイムアウトが発生しやすくなります。 そこでフロント側で分割してファイルをアップし、バックエンド側で受け取った後に結合するようにするとよいでしょう 注意すべき点として通常のPOSTでの送信ではないため、あらかじめそこら辺を考慮した処理が必要とな […]

スマホアプリ

お子さまの安全を守るアプリ「みまもりキッズ」をリリースしました!

お子さまが学校や習い事、遊びに出かけたあと、「ちゃんと安全に過ごしているかな?」と心配になったことはありませんか? 不審者による事件が後を絶たない昨今、お子さまの安全を守るために、常に高い意識を持たれている保護者の方も多いのではないでしょうか。 そんな中、親子の安心をサポートする新しいアプリ「みまもりキッズ」が登場しました! 基本無料で、カンタンに使うことができます。 この記事では、アプリの魅力や使い方を詳しくご紹介します。 目次1 みまもりキッズは何ができるの?1.1 カン […]

株式会社8bit (エイトビット)

東京都目黒区でWebサイト制作、Webシステム開発などを行っております。
コーポレートサイトやWebサービスの企画・提案を得意としており、自社での経験を元にアイデアをカタチにするお手伝いをさせていただいております。

Web制作に関するご相談はお気軽にどうぞ

弊社に制作をご依頼いただく際の費用感をご確認いただける、
見積りシミュレーションをご用意いたしました。