WordPress

特定ユーザー以外で機能を非表示

管理権限は与えたいが、左の管理者メニューが多すぎるそうなので、ユーザーid1以外のユーザーには機能を非表示にするメモ。

/*====================================
    特定ユーザー以外で機能を非表示
======================================*/
function remove_menus () {
global $current_user;
get_currentuserinfo();
  if( $current_user->ID !== 1) { // 「1」は全権持たせたいユーザーID
  remove_menu_page ('index.php'); // ダッシュボード
  remove_submenu_page( 'index.php', 'update-core.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', 'remove_menus');

コメントアウトしている場所は他のIDのユーザーも表示したいメニュー。削除してもいいんだけど、今後使いまわせるようにコメントアウトにしてある。
siteguardとかのプラグイン機能も設定を変更されないように非表示にしたいんだけど、今回はそこまではちょっとわからなかった。

https://developer.wordpress.org/reference/functions/get_currentuserinfo/

  • この記事を書いた人

ゆず

忘れないように自分の覚書と、誰かも困っているかもしれないので参考になればいいなくらいの軽い備忘録です。
ko-fi / giftee / mail

-WordPress
-