サポート » 使い方全般 » 「お客様用のダッシュボード」をつくりたい。-ダッシュボードのカスタマ

  • こんにちは。

    ダッシュボードのカスタマイズについておうかがいします。

    WPのバージョンは現在は3.1.1を使用しています。
    お客様にWPで制作したサイトを納品するにあたり、ダッシュボード内の左側にあるメニューを
    一部分非表示にできないか、その方法を探しています。

    ダッシュボード内のメニューというのは、左側にある「投稿」「メディア」「リンク」「外観」
    。。などのことです。

    現在の状態は、

    「投稿」
    「お知らせの投稿」←カスタム投稿
    「イベント情報の投稿」←カスタム投稿
    「メディア」
    「リンク」
    「固定ページ」
    「コメント」
    ———————-
    「外観」
    「プラグイン」
    「ユーザー」
    「ツール」
    「設定」
    「お問合せ」←プラグイン

    となっています。
    この中でお客さまが使用するのは、

    「投稿」
    「お知らせの投稿」←カスタム投稿
    「イベント情報の投稿」←カスタム投稿
    「メディア」
    「リンク」
    「固定ページ」

    だけなので、他のメニューを非表示にしたいと考えています。

    ただ、管理は任されているのでお客様がログインしたときのみ必要なメニューが表示され、
    私がログインしたときは全て通常通りにメニューが表示されて欲しいと思っています。

    できればお客様が設定やテーマの編集などいじってしまわないようにする事が目的です。

    「管理者用のダッシュボード」と「お客様用のダッシュボード」こんな使い分けができる
    方法があれば是非教えてください。
    どうぞよろしくお願いいたします。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • 私がお客様に納品する際には編集者アカウントを別に作成し、ある程度アクセスできる項目を減らした上で、functions.phpに

    function remove_menus () {
    	if (!current_user_can('level_10')) { //level10以下(編集者以下)のユーザーに適用
    		global $menu;
    		$restricted = array(__('コメント'), __('リンク'), __('ツール'), __('プロフィール')); //削除する項目を記述
    		end ($menu);
    		while (prev($menu)){
    			$value = explode(' ',$menu[key($menu)][0]);
    			if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
    		}
    	}
    }
    add_action('admin_menu', 'remove_menus');

    のように書き、いらない項目をサイドバーから消しています。
    お客様には編集者アカウントを使用して頂き、当方でログインする際には管理者アカウントで全ての項目を表示させます。

    もっと最適な方法があるかもしれませんので、参考までに。

    orangethymeさん

    ご返信遅れましてすいません。
    ありがとうございました。「admin-menue-editor」はサイドバーの項目の名前の変更や削除の他に管理者権限などを編集する事はできるのでしょうか?

    kdmworksさん

    ご返信遅れて申し訳ございません。
    kdmworksさんから頂いた方法でも試してみます。

    お客様には編集者アカウントを使用して頂き、当方でログインする際には管理者アカウントで全ての項目を表示させます。

    とありましたが、kdmworksさんから頂いたこの記述で、

    function remove_menus () {
    	if (!current_user_can('level_10')) { //level10以下(編集者以下)のユーザーに適用
    		global $menu;
    		$restricted = array(__('コメント'), __('リンク'), __('ツール'), __('プロフィール')); //削除する項目を記述
    		end ($menu);
    		while (prev($menu)){
    			$value = explode(' ',$menu[key($menu)][0]);
    			if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
    		}
    	}
    }
    add_action('admin_menu', 'remove_menus');

    で、編集者アカウントでログインした場合にはAタイプのダッシュボード、
    管理者でログインした際にはBタイプのダッシュボードを利用するという記述は
    どの部分になるのでしょうか。
    もしよろしければ教えて下さい。

    ちなみにkdmworksさんは「admin-menue-editor」を利用した事はありますか?

    admin-menue-editor はアクセス権の設定も出来ます。

    orangethymeさん

    ご返信ありがとうございます。
    「admin-menue-editor」の管理者権限の説明がされているサイトが中々見つからず
    今苦戦しております。できればどこで設定するのか教えていただけませんでしょうか。
    よろしくお願いします。

    詳しく説明さてているサイトないだどうか。。。

    Required capability という項目があるので、それで設定します。

    私は「admin-menue-editor」を使用したことはありません。すみません。

    ユーザーの種類によってダッシュボードに表示される項目が異なるのは以下の通りですが、
    (*参考:http://wpdocs.sourceforge.jp/ユーザーの種類と権限
    上のコードは編集者アカウント以下の(つまり管理者以外)でログインした時に適用されますので、aoneisseiさんが管理者アカウントでログインした際には通常通り全ての項目が表示されます。

    次に、お客様には編集者アカウントでログインしていただくわけですが、この時点で例えば「外観」などは管理者でないと表示されないので、既に表示されなくなっています。

    それに加えて表示させたくない項目を下記の行
    $restricted = array(__('コメント'), __('リンク'), __('ツール'), __('プロフィール'));
    に配列で追加していくと更にその項目を消せますので私はそれで対応しています。

    私はなるべくプラグインを使わないで済むようならそうしたいのでこういうやり方をしていますが、プラグインでサクッと対応できるならそれも全然ありだと思いますのでaoneisseiさんのやりやすい方法で挑戦してみてくださいm(_ _)m

    kdmworkssさん

    ご返信ありがとうございます。
    なるほど、そういうことなんですね。
    ユーザーの種類によって元々権限が違うんですね。
    それを知っただけで色々と一気に問題が解消してしまいました。
    基本的なことを知らずにお手数おかけしました。

    ありがとうございます。^^

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • トピック「「お客様用のダッシュボード」をつくりたい。-ダッシュボードのカスタマ」には新たに返信することはできません。