2017.12.25
WordPress
WordPress管理画面で不要なメニューを見えなくする方法
WordPressの管理画面には投稿ページを制御するためのメニューが多数並びます。これは投稿タイプを足せばその分も並び、複数の投稿タイプやプラグイン、ツールや設定項目と実装につれ増えていき、最終的には結構煩雑で物量のある管理画面メニューになりがちです。
制作者が使う分にはそれでもまだ問題ないんですが、クライアントに納品するWordpresでクライアントが絶対触らない機能や、逆に触るとサイトの設定が崩れるような箇所は、function.php
で指定することによって触れないようにする工夫ができます。今回はそんなWordpress管理画面のカスタマイズ法法をご紹介します。
管理画面メニューの隠し方
unset
admin_menuフックを利用し、対象となるメニューをunsetすることで、表示を隠すことができます。
function hide_menu () { global $menu; unset($menu[2]); // ダッシュボード unset($menu[4]); // メニューの線1 unset($menu[5]); // 投稿 unset($menu[10]); // メディア unset($menu[15]); // リンク unset($menu[20]); // ページ unset($menu[25]); // コメント unset($menu[59]); // メニューの線2 unset($menu[60]); // テーマ unset($menu[65]); // プラグイン unset($menu[70]); // プロフィール unset($menu[75]); // ツール unset($menu[80]); // 設定 unset($menu[90]); // メニューの線3 } add_action('admin_menu', 'hide_menu');
サブメニューを隠したいときは$submenu
を利用すれば実現できます。
function hide_menu () { global $submenu; unset($submenu['edit.php'][5]); // 投稿一覧 } add_action('admin_menu', 'hide_menu');
配列はvar_dump($submenu);
で調べられます。
remove_menu_page
Worrdpress関数のremove_menu_page
を使って非表示にすることもできます。
function hide_menu () { 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', 'hide_menu');
サブメニューの場合は、remove_submenu_page
を使います。
function hide_menu () { global $submenu; remove_submenu_page('edit.php', 'post-new.php'); } add_action('admin_menu', 'hide_menu');
管理者権限によって隠す
WordPressの管理者権限によって表示を隠す設定ができます。
function hide_menu () { if (!current_user_can('administrator')) { //管理者ではない場合 remove_menu_page( 'index.php' ); // 例でダッシュボードを隠しています } } add_action('admin_menu', 'hide_menu');
まとめ
メニューの表示はプラグインでも制御できますが、複数のプラグインが干渉してうまく動作しなかったりすることがままあります。基本に立ち返って手動でコードを記入する機会があれば、利用してみてください。