カスタム投稿タイプのUIを特定のユーザーロールから完全に非表示にすることを考えています...これらのCPTを使用するためのアクセスを無効にする方法に関するリソースは多数ありますが、CPT UIを完全に非表示にすることはできません。どのユーザーがダッシュボードにログインしているかに基づいてすべてまとめて表示されます。
クライアントがストアのカスタム投稿タイプを完全に使用しないようにする必要があるため、これは重要です。ダッシュボードでストアのCPT UIが表示される場合でも、機能が制限されていれば効果は変わりません。その結果、自分で製品を追加する方法について説明します。
Idは、プラグインでこれを実現しないことを本当に望んでいます。
SBさん、どうもありがとう
function wpse28782_remove_menu_items() {
if( !current_user_can( 'administrator' ) ):
remove_menu_page( 'edit.php?post_type=your_post_type' );
endif;
}
add_action( 'admin_menu', 'wpse28782_remove_menu_items' );
your_post_type
はあなたの実際の投稿タイプの名前です。
編集 -
remove_menu_page('edit.php'); // Posts
remove_menu_page('upload.php'); // Media
remove_menu_page('link-manager.php'); // Links
remove_menu_page('edit-comments.php'); // Comments
remove_menu_page('edit.php?post_type=page'); // Pages
remove_menu_page('plugins.php'); // Plugins
remove_menu_page('themes.php'); // Appearance
remove_menu_page('users.php'); // Users
remove_menu_page('tools.php'); // Tools
remove_menu_page('options-general.php'); // Settings
編集2 -
プラグインの場合、必要なのはpage=
クエリ変数だけです。もう1つ注意すべきことは優先順位です。これはadmin_menu
add_action
の3番目の引数です。プラグインがすでにメニューに追加されているように、十分に低く設定する必要があります(数字が大きいほど、優先順位は低くなります)。
function wpse28782_remove_plugin_admin_menu() {
if( !current_user_can( 'administrator' ) ):
remove_menu_page('cart66_admin');
endif;
}
add_action( 'admin_menu', 'wpse28782_remove_plugin_admin_menu', 9999 );
説明されているように、受け入れられた回答を使用してカスタム投稿タイプ(およびその他の各種アイテム)を非表示にすることができます。しかし、 CPT UI pluginメニュー自体を非表示にしたい場合は、最初にそれをメニューに追加するアクションを削除することもできます。
if( !current_user_can( 'administrator' ) ) {
remove_action( 'admin_menu', 'cptui_plugin_menu' );
}
Adminimize プラグインを使用することもできます。このプラグインには、さまざまな役割を隠すためのすべての投稿タイプ、メタボックス、その他多数のオプションがあります。コーディングなし.
すべてのShop Managerユーザロールの最上位メニュー[Products]の下にある[Woocommerce]サブメニューを非表示にするには(Wordpress 5.1.1)
function remove_menus_shopmgr(){
// If the current user is a shop manager
if ( current_user_can('shop_manager') ) {
//removes Products > Categories submenu
remove_submenu_page( 'edit.php?post_type=product','edit-tags.php?taxonomy=product_cat&post_type=product' );
//removes Products > Tags submenu
remove_submenu_page( 'edit.php?post_type=product','edit-tags.php?taxonomy=product_tag&post_type=product' );
}
}
add_action( 'admin_menu', 'remove_menus_shopmgr', 999 );
あなたが "Custom Post Type UI" a.k.a CPTUIという名前のプラグインのメニューを隠したいのであれば、最初のリンクをremove_menu_pageと組み合わせることはできません。
あなたがしなければならないのはただです。
function wpse_28782_remove_menus() {
remove_menu_page('cptui_main_menu');
}
add_action('admin_init', 'wpse_28782_remove_menus');