Deaktiviere Standard-Posts (Posts, Seiten, Kommentare und Medien) in wp-admin

Ich möchte die Standard Post-Typen für Benutzer Autor in der WP-Admin-Panel der WordPress deaktivieren und nur benutzerdefinierte Post-Typen anzeigen.

Dafür hatte ich den unten angegebenen Code.

function remove_menus(){ $author = wp_get_current_user(); if(isset($author->roles[0])){ $current_role = $author->roles[0]; }else{ $current_role = 'no_role'; } if($current_role == 'author'){ remove_menu_page( 'index.php' ); //Dashboard remove_menu_page( 'edit.php' ); //Posts remove_menu_page( 'upload.php' ); //Media remove_menu_page( 'edit.php?post_type=page' ); //Pages remove_menu_page( 'edit-comments.php' ); //Comments remove_menu_page( 'themes.php' ); //Appearance remove_menu_page( 'plugins.php' ); //Plugins remove_menu_page( 'users.php' ); //Users remove_menu_page( 'tools.php' ); //Tools remove_menu_page( 'options-general.php' ); //Settings } } add_action( 'admin_menu', 'remove_menus' ); 

Die Standard-Post-Typen verschwinden aus dem Admin-Panel, aber das Problem mit dem obigen Code ist, dass die Seiten weiterhin zugänglich sind, wenn die URL eingegeben wird und wenn das Admin-Panel vom oberen Dashboard geladen wird.

Ich möchte, dass die Standardposttypen blockiert sind oder die Seite nicht geladen werden sollte, während die benutzerdefinierte Posttypseite geladen werden sollte.

Dachte der Post-Typ ist deaktiviert die Seiten laden auf geben Sie die URL in der Adressleiste ein.

Bildbeschreibung hier eingebenBildbeschreibung hier eingeben

Solutions Collecting From Web of "Deaktiviere Standard-Posts (Posts, Seiten, Kommentare und Medien) in wp-admin"

Fügen Sie dies Ihrer Datei functions.php hinzu und beachten Sie, dass Sie die functionen für jeden Posttyp (Post, Page und Anhang) und Taxonomie (Kategorie und Post-Tag) abrufen und bearbeiten müssen.

Sie sollten beachten, dass es mehr Möglichkeiten als die aufgeführten gibt, aber ich glaube nicht, dass sich das ändern muss. Deshalb rate ich Ihnen, die Standardfähigkeiten für jeden Beitragstyp auszugeben und genau herauszufinden, welche Sie ändern müssen und in was sie geändert werden sollen.

Ich habe nicht genau darauf geachtet, welche Erlaubnis du setzen musst, aber ich glaube, dass dieses Beispiel es so machen wird, dass nur Editoren und darüber hinaus alles mit Posts machen können.

Weitere Informationen zu Rollen und functionen finden Sie im Codex .

 add_action('init', 'my_change_post_object_cap', 1); function my_change_post_object_cap(){ $post = get_post_type_object('post'); $post_cap = &$post->cap; $post_cap->edit_post = 'edit_others_posts'; $post_cap->read_post = 'edit_others_posts'; $post_cap->delete_post = 'delete_others_posts'; $post_cap->edit_posts = 'edit_others_posts'; $post_cap->edit_others_posts = 'edit_others_posts'; $post_cap->publish_posts = 'edit_others_posts'; $post_cap->read = 'edit_others_posts'; $post_cap->delete_posts = 'delete_others_posts'; $post_cap->delete_published_posts = 'delete_others_posts'; $post_cap->edit_published_posts = 'edit_others_posts'; $post_cap->create_posts = 'edit_others_posts'; $page = get_post_type_object('page'); $page_cap = &$page->cap; /** do the same as above, but for pages capabilities */ $attachment = get_post_type_object('attachment'); $attachment_cap = &$attachment->cap; /** do the same as above, but for attachment capabilities */ $category = get_taxonomy('category'); $category_cap = $category->cap; /** do the same as above, but for category capabilities */ $post_tag = get_taxonomy('post_tag'); $post_tag_cap = $post_tag->cap; /** do the same as above, but for post_tag capabilities */ }