it-swarm.com.de

Kann die Benutzeroberfläche/das Menü "Benutzerdefinierter Beitragstyp" für bestimmte Benutzerrollen ausgeblendet werden?

Ich möchte die Benutzeroberfläche für einen benutzerdefinierten Beitragstyp vollständig vor bestimmten Benutzerrollen verbergen. Ich habe zuvor viele Ressourcen zum Deaktivieren des Zugriffs auf diese CPTs gefunden, aber nichts, was es Ihnen wirklich ermöglicht, die CPT-Benutzeroberfläche vollständig zu verbergen Alles in allem basierend darauf, welcher Benutzer im Dashboard angemeldet ist.

Dies ist wichtig, da ich möchte, dass Kunden keine benutzerdefinierten Beitragstypen für das Geschäft verwenden. Wenn sie die CPT-Benutzeroberfläche des Geschäfts im Dashboard sehen, spielt es keine Rolle, ob ihre Funktionen eingeschränkt sind, da sie weiterhin nachfragen wie sie infolgedessen selbstständig Produkte hinzufügen können.

Ich würde es wirklich vorziehen, dies nicht mit einem Plugin zu erreichen, aber wenn es etwas gibt, das den Trick auf eine nicht aufgeblähte Art und Weise ausführen kann, wäre das vermutlich immer noch großartig.

Vielen Dank für Ihre Hilfe, SB

19
Mr.Brown

So verbergen Sie einen Menüeintrag vom Typ "Beitrag" für Benutzer ohne Administratorrechte:

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 sollte der Name Ihres tatsächlichen Beitragstyps sein.

EDIT-

andere Menüseiten, die Sie entfernen können:

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

EDIT 2 -

Plugin-Menüpunkte entfernen.

Für Plugins benötigen Sie anscheinend nur die Abfragevariable page=. Die andere Sache, die zu beachten ist, ist die Priorität, die das dritte Argument zum admin_menuadd_action ist. Es muss niedrig genug eingestellt werden (je höher die Zahl, desto niedriger die Priorität), damit sich Plugins bereits zum Menü hinzugefügt haben.

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 );
36
Milo

Die akzeptierte Antwort kann verwendet werden, um benutzerdefinierte Beitragstypen (und andere sortierte Elemente) wie beschrieben auszublenden. Wenn Sie jedoch das CPT UI Plugin-Menü selbst ausblenden möchten, können Sie auch die Aktion entfernen, mit der es überhaupt zum Menü hinzugefügt wird.

if( !current_user_can( 'administrator' ) ) {
    remove_action( 'admin_menu', 'cptui_plugin_menu' );
}
1
Grant

Sie können auch das Adminimize Plugin verwenden. Dieses Plugin bietet Optionen für alle Beitragstypen, Meta-Boxen und vieles mehr, um sich in verschiedenen Rollen zu verstecken. Keine Kodierung.

1
bueltge

So verbergen Sie Woocommerce-Untermenüs im Hauptmenü "Produkte" für alle Shop Manager-Benutzerrollen (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 );

Wenn Sie das Menü des Plugins ausblenden möchten, dessen Name "Benutzerdefinierte Beitragstyp-Benutzeroberfläche" und "CPTUI" lautet, ist es nicht möglich, den ersten Link mit "remove_menu_page" zu kombinieren.

Alles was du tun musst, ist ;

function wpse_28782_remove_menus() {
    remove_menu_page('cptui_main_menu');
}
add_action('admin_init', 'wpse_28782_remove_menus');
0
merkjs