wordpressで管理者以外カスタム投稿のメニューやサブメニューを非表示にする

Filed under: functions.php — kdcs @ 25年5月10日 土曜日

管理者以外はカスタム投稿タイプのサブメニューを非表示にしたい場合(新規投稿など出来なくする)

例:カスタム投稿タイプのスラッグは「hogehoge」でメニューはコメントアウトで表示させ、サブメニューを非表示にする記述

functions.php

// カスタム投稿タイプ「広告バナー」のサブメニューを非表示にする(管理者以外) ------------
function remove_custom_post_type_submenu() {
    if (!current_user_can('manage_options')) { // 管理者以外
//      remove_menu_page('edit.php?post_type=hogehoge'); // カスタム投稿タイプのメニューを削除
        remove_submenu_page('edit.php?post_type=hogehoge', 'post-new.php?post_type=hogehoge'); // 新規追加サブメニューを削除
    }
}
add_action('admin_menu', 'remove_custom_post_type_submenu', 100);

その他、全体的に管理者以外、使用しないメニューを非表示にする記述に追加でカスタム投稿タイプのメニューの非表示も行える

例:広告バナー(advertise)と商品管理(items)のメニュー非表示の記述を最下部に入れる

functions.php

// 使用しないメニューを非表示にする ------------------------------------------------------
function remove_admin_menus() {
 
    // level10以外のユーザーの場合
    if (!current_user_can('level_10')) {
 
        global $menu;
        global $submenu;
 
        // unsetで非表示にするメニューを指定
        unset($menu[2]);  // ダッシュボード
//      unset($menu[5]);  // 投稿
      unset($menu[10]); // メディア
//      unset($menu[20]); // 固定ページ
        unset($submenu['edit.php?post_type=page'][10]); //固定ページのサブメニュー
        unset($menu[25]); // コメント
        unset($menu[60]); // 外観
        unset($menu[65]); // プラグイン
        unset($menu[70]); // ユーザー
        unset($menu[75]); // ツール
        unset($menu[80]); // 設定
 remove_menu_page('wpcf7'); //コンタクトフォーム7
 remove_submenu_page( 'edit.php?post_type=advertise', 'post-new.php?post_type=advertise' ); //広告バナー新規作成
// remove_menu_page('edit.php?post_type=items', 'edit-tags.php?taxonomy=items_category&post_type=items'); //商品管理 カスタム投稿 タクソノミー
    }
}
add_action('admin_menu', 'remove_admin_menus');

サイト内検索

カテゴリー

最近の投稿

« |wordpressで管理者以外カスタム投稿のメニューやサブメニューを非表示にする| »
↑上に戻る