So entfernen Sie die Post-Auflistungsseite für einen benutzerdefinierten Post-Typ

Ich möchte functionalität bereitstellen, um einen einzelnen Beitrag in meinem benutzerdefinierten Beitragstyp zu erstellen. Und dazu, wenn Benutzer auf Hauptoption (Name des Beitrags) auf der linken Seitenleiste in Word-Press-Back-End klicken Es ist automatisch redirect auf “Add New Post” oder wenn ein Beitrag bereits erstellt dann automatisch auf “Post bearbeiten” ( vorhandene Postbearbeitung).

Gerade jetzt am Back-End sieht die Post-Option so aus –

Meine Posts

Also, jetzt will ich kein Untermenü. und Preform hinzufügen / bearbeiten Beitrag Option im Hauptmenü klicken. Ist das möglich, wenn ja, kannst du mir bitte sagen, wie ich das erreichen kann?

Solutions Collecting From Web of "So entfernen Sie die Post-Auflistungsseite für einen benutzerdefinierten Post-Typ"

Ich bekomme eine Möglichkeit, dieses Problem zu umgehen. Mit “add_action” kann ich mein Ziel erreichen.

add_action("load-edit.php", 'block_listing_page'); //-- Block user to access post listing page function block_listing_page() { if ($_GET["post_type"] == "your_custom_post_type") { $args = array('post_type' => 'your_custom_post_type', 'post_status' => 'publish'); $galleryPosts = get_posts($args); if (!empty($galleryPosts) && count($galleryPosts) > 0) { wp_redirect("post.php?post=" . $galleryPosts[0]->ID . "&action=edit"); } else { wp_redirect("post-new.php?post_type=your_custom_post_type"); } } } add_action("load-post-new.php", 'block_create_multiple_gallery'); //-- Check if a post is exist open in edit mode when clicking add new post function block_create_multiple_gallery() { if ($_GET["post_type"] == "your_custom_post_type") { $args = array('post_type' => 'your_custom_post_type', 'post_status' => 'publish'); $galleryPosts = get_posts($args); if (!empty($galleryPosts) && count($galleryPosts) > 0) { wp_redirect("post.php?post=" . $galleryPosts[0]->ID . "&action=edit"); } else { return true; } } } 

Aber, noch möchte ich das Untermenü verstecken (zB “Add New”); Kann mir jemand dabei helfen?

Sie müssen die richtigen Hooks verwenden (die nicht immer die gleichen sind wie die URLs / Slugs), und es tut nicht weh, einen Hook zu verwenden, der später läuft (zB admin_init):

 add_action( 'admin_init', 'wpaws_136058_remove_menu_pages' ); function wpaws_136058_remove_menu_pages() { /*You can check list of menu item by below code: foreach ($GLOBALS['menu'] as $key => $value) { print('

'); } */ //Remove item from menu remove_menu_page('menu_to_remove'); }