権限編集するプラグインは色々ありますが、プラグインを使わずに functions.php だけで必要最低限にやる方法です。
要件
「投稿者」権限のユーザーがWordPressにログインした際、以下のように管理画面の機能を制限する。
- ダッシュボードの「アクティビティ」や「WordPressブログ」など不要なウィジェットを非表示にする
- 画像アップロード機能を使わせない
- 左メニューから「ツール」を消す
- 投稿画面から本文欄と「タグ」以外を非表示にする
functions.php の編集
//投稿者の画像アップ権限を削除 function remove_theme_caps(){ //投稿者 $role = get_role( 'author' ); $caps = array( 'upload_files', //ファイルアップロード ); foreach ( $caps as $cap ) { $role->remove_cap( $cap ); } } add_action( 'admin_init', 'remove_theme_caps' ); //投稿者の管理画面表示を制限 if (current_user_can('author')) { //管理メニューから「ツール」非表示 function remove_menus () { global $menu; unset($menu[75]); // ツール } add_action('admin_menu', 'remove_menus'); //ダッシュボードの不要項目削除 function example_remove_dashboard_widgets() { global $wp_meta_boxes; unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']); // 被リンク unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']); // プラグイン unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_activity']); // アクティビティ unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']); // クイック投稿 unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); // WordPressブログ unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']); // WordPressフォーラム } add_action('wp_dashboard_setup', 'example_remove_dashboard_widgets'); //投稿画面の不要項目削除 function my_remove_meta_boxes() { remove_meta_box('authordiv', 'post', 'normal'); // 投稿者 remove_meta_box('categorydiv', 'post', 'normal'); // カテゴリー remove_meta_box('commentstatusdiv', 'post', 'normal'); // ディスカッション remove_meta_box('commentsdiv', 'post', 'normal'); // コメント remove_meta_box('formatdiv', 'post', 'normal'); // フォーマット remove_meta_box('pageparentdiv', 'post', 'normal'); // ページ属性 remove_meta_box('postcustom', 'post', 'normal'); // カスタムフィールド remove_meta_box('postexcerpt', 'post', 'normal'); // 抜粋 remove_meta_box('postimagediv', 'post', 'normal'); // アイキャッチ remove_meta_box('revisionsdiv', 'post', 'normal'); // リビジョン remove_meta_box('slugdiv', 'post', 'normal'); // スラッグ remove_meta_box('trackbacksdiv', 'post', 'normal'); // トラックバック } add_action('admin_menu', 'my_remove_meta_boxes'); }