Benutzerdefinierte Rolle Zulassen von Dingen, die es nicht sein sollte

Ich erstelle diese Rolle “Lebensmittelgeschäft” für einen Kunden, aber es muss im Grunde nur in der Lage sein, Seiten zu bearbeiten und Medien hochzuladen. Aus irgendeinem Grund erlaubt der Code, den ich habe, der “Lebensmittel” -Rolle immer noch, Beiträge zu löschen und Seiten zu erstellen und eine Menge Dinge zu tun, die diese Rolle NICHT ermöglichen soll. Das ist mein Code, ich kann nicht herausfinden, warum es nicht funktioniert. Es fügt die Rolle hinzu und lässt mich Benutzer unter dieser Rolle erstellen, aber wieder erlaubt es die falschen Dinge.

// Give capabilities $capabilities_grocery = array( 'activate_plugins' => false, 'delete_others_pages' => false, 'delete_others_posts' => false, 'delete_pages' => false, 'delete_posts' => false, 'delete_private_pages' => false, 'delete_private_posts' => false, 'delete_published_pages' => false, 'delete_published_posts' => false, 'edit_dashboard' => false, 'edit_others_pages' => true, 'edit_others_posts' => true, 'edit_pages' => true, 'edit_posts' => true, 'edit_private_pages' => true, 'edit_private_posts' => true, 'edit_published_pages' => true, 'edit_published_posts' => true, 'edit_theme_options' => false, 'export' => true, 'import' => true, 'list_users' => false, 'manage_categories' => false, 'manage_links' => false, 'manage_options' => false, 'moderate_comments' => false, 'promote_users' => false, 'publish_pages' => false, 'publish_posts' => false, 'read_private_pages' => false, 'read_private_posts' => false, 'read' => true, 'remove_users' => false, 'switch_themes' => false, 'upload_files' => true, 'customize' => false, 'delete_site' => false, ); // Add The Role add_role('grocery', 'Grocery', $capabilities_grocery); 

Solutions Collecting From Web of "Benutzerdefinierte Rolle Zulassen von Dingen, die es nicht sein sollte"

Dies geschieht, weil die Bearbeitungsfunktion das Hinzufügen neuer Posts / Seiten ermöglicht. Eine schnelle Google zeigt, gibt es Möglichkeiten, die Erstellungsfähigkeit zu entfernen; Ich habe keine von ihnen getestet.

@ Cherry Austin Recht, wenn Sie “bearbeiten” -Fähigkeit hinzufügen erlaubt das Hinzufügen neuer Beiträge / Seiten.

Sie können die neue Seite jedoch auch ausblenden, und Sie können den Benutzer auch redirect, wenn der Benutzer versucht, direkt auf die neue Seite zuzugreifen. Bitte überprüfen Sie den folgenden Code:

 public function remove_add_page_menu() { $user = wp_get_current_user(); $current_screen = get_current_screen(); if( isset( $user->roles[0] ) ){ $current_role = $user->roles[0]; } if ( $current_role == 'user_role') { // this function will remove the Add New Page Link from Menu remove_submenu_page( 'edit.php?post_type=page', 'post-new.php?post_type=page' ); //User can directly access the add new page so you can redirect the user if( "add" === $current_screen->action && "page" == $current_screen->post_type ) { wp_redirect('htpp://www.url.com'); } } } add_action( 'current_screen','remove_add_page_menu' ); 

🙂