プラカンブログSTAFF BLOG

2017.03.09

WordPress 管理画面の左サイドバーメニューをユーザーごとにカスタマイズする方法

こんにちは。デザイナーのSUZUKIです。

前回はWordPressの「ユーザーの種類と権限」とユーザーごとに振り分ける方法を紹介しましたが、
その応用で、今回は管理画面の左サイドバーメニューをユーザーの権限ごとにカスタマイズする方法を紹介します。

  1. 左サイドバーメニューの非表示
  2. 左サイドバーメニューの表記名を変更
  3. 左サイドバーメニューの表示順の変更

管理者以外のユーザーには必要のない項目を非表示にしたり、
メニュー名を変更するなど、ユーザーにとっても使いやすくし、
また、プラグインやテンプレートなどWordPress全体に関わる内容を間違えて、変更されないようにもできます。

1. 左サイドバーメニューの非表示

admin_menuフックを使い、unsetで非表示が可能です。
下記内容は左サイドバーメニューを載せているので、
非表示したいものだけ残して、functions.phpに記述してください。

function remove_menus () {
    global $menu;
    unset($menu[2]);  // ダッシュボード
    unset($menu[5]);  // 投稿
    unset($menu[10]); // メディア
    unset($menu[15]); // リンク
    unset($menu[20]); // ページ
    unset($menu[25]); // コメント
    unset($menu[60]); // テーマ
    unset($menu[65]); // プラグイン
    unset($menu[70]); // プロフィール
    unset($menu[75]); // ツール
    unset($menu[80]); // 設定
}
add_action('admin_menu', 'remove_menus');

またサブメニューから削除したい場合は下記を参考にfunctions.phpに記述してください。

function remove_menus () {
    global $submenu;
    unset($submenu['edit.php'][5]); // 投稿一覧
}
add_action('admin_menu', 'remove_menus');

前回の方法と組み合わせて、左サイドバーメニューを非表示する方法は下記になります。
例:管理者以外のユーザーの場合、「コメント」、「ツール」、「投稿一覧」を非表示

function remove_menus () {
    if (!current_user_can('administrator')) { //管理者ではない場合
    global $menu;
    global $submenu;
    unset($menu[25]); // コメント非表示
    unset($menu[75]); // ツール非表示
    unset($submenu['edit.php'][5]); // 投稿一覧
    }
}
add_action('admin_menu', 'remove_menus');

「1. 左サイドバーメニューの非表示」はなるべく対応することをおすすめします。
WordPressに慣れていないユーザーもいるので、間違えて設定を変更してしまう可能性もあります。
未然に事故を防ぐ上でも、ユーザーにとって余計なメニューは非表示にするといいと思います。

2. 左サイドバーメニューの表記名を変更

admin_menuフックを使い、表記名の変更が可能です。
例:「投稿」を「お知らせ」、「投稿一覧」を「お知らせ一覧」に変更

function edit_admin_menus() {
  global $menu;
  global $submenu;
  $menu[5][0] = 'お知らせ';    // 投稿
  $submenu['edit.php'][5][0] = 'お知らせ一覧'; // 投稿一覧をお知らせ一覧に変更
}
add_action( 'admin_menu', 'edit_admin_menus' );

3. 左サイドバーメニューの表示順の変更

必要な項目を上部に変更することで、使いやすく変更が可能です。
例:「投稿」、「固定ページ」を上部に移動

function custom_menu_order($menu_ord) {
    if (!$menu_ord) return true;
 
    return array(
        'index.php', // ダッシュボード
        'edit.php', // 投稿
        'edit.php?post_type=page', // 固定ページ
        'edit-comments.php', // コメント
        'separator1', // 区切り線1
        'upload.php', // メディア
        'link-manager.php', // リンク
        'users.php', // ユーザー
        'separator2', // 区切り線2
        'themes.php', // テーマ
        'plugins.php', // プラグイン
        'tools.php', // ツール
        'options-general.php', // 設定
        'separator-last', // 区切り線3
    );
}
add_filter('custom_menu_order', 'custom_menu_order');
add_filter('menu_order', 'custom_menu_order');

「2. 左サイドバーメニューの表記名を変更」、「3. 左サイドバーメニューの表示順の変更」は
WordPressを使いやすくする内容なので、余裕があれば対応しておくといいと思います。

まとめ

WordPressやWebに慣れていないユーザーにとって、
投稿するのは敷居が高い作業になります。
せっかく導入したWordPressを有効に活用、頻繁に利用してもらうためにも
上記の記述を参考に、カスタマイズをしてみてください。
とても簡単なので、安心して試してみてください。

今回は左サイドバーメニューのカスタマイズを紹介しましたが、
投稿画面のカスタマイズも可能なので、次回以降で紹介できればと思っています。

参考リンク

下記は参考にしたサイトになります。
詳しく知りたい方はどうぞ。

http://nangoku-ski-club.sakura.ne.jp/wordpress/?p=5215
http://qiita.com/konweb/items/5483efbe87087eff5cc8

http://wald-grun.biz/blog/wp/4564/

この記事は、SUZUKI が書きました。
Webデザイナー募集中
Webデザイナー募集中(東京)ただいま東京事務所ではウェブデザイナーを募集しています!詳しくはこちらをご参照ください。