I found the answer on WordPress Forum:
http://wordpress.org/support/topic/add-backend-page-without-menu-item#post-2135050
It requires add_submenu_page() with slug = null (first argument). In WordPress documentation it’s marked as ‘required’ so it looks like it’s required but can be null.
Related Posts:
- Creating a WordPress admin page without a menu for a plugin
- Add menu page issues (permissions & position)
- Pass PHP variable to javascript
- How to Add a Third Level Sub Menu to the WordPress Admin Menu
- Is there a way (plugin?) to restrict a user to being able to edit just one page?
- Admin menu as submenu from another plugin
- What is the best page ordering plugin that works well with WPML? [closed]
- Removing an admin page added by a 3rd party plugin. Gravity forms in this example
- Best way to manage a lot of pages in Wp Admin [closed]
- Create page when plugin is activated
- Delete option doesn’t appear for plugins
- Adding an admin page – OOP approach not working
- jQuery plugin only in one page/post
- Generate Advanced Custom Fields box in custom admin menu page
- How can I show drafts in wp_dropdown_pages list?
- Plugin development: how to create a form and get custom data?
- Pages with 2 Columns
- How to create a Page alias in WordPress
- Master menu item for multiple plugins?
- WP-PageNavi plugin doesn’t work with multiple pages of search results
- How to extract images of post and pages excluding header and logo image in wordpress?
- How to make a WP admin button/menu similar to Jetpack Notifications?
- wp_verify_nonce() why return false?
- Detecting when a custom taxonomy has been changed and display alert?
- Sub menu with a URL parameter and access the page
- How to exclude a widget from page 1 of a paginated post
- add_meta_box Callback not being called
- Removing WordPress Plugin Menu Item for a specific user
- Is there a way to lock certain pages from being edited by anyone other then the admin?
- Replace existing pages with new pages, keep menu links
- How to show category images (from plugin) on a regular page (page-example.php)?
- add function to saving change on Options Pages
- [Plugin: Posts 2 Posts] How does it work?
- Creating a menu page in a Object Oriented developed plugin
- Distributing and packaging plugins
- Change the $parent_file of a plugin page
- Custom Text Under Navigation Links
- Set a category for a page
- Automatically adding post and pages to new blog setups
- reorder plugin menu position
- How do I remove the entire left nav bar in admin for certain level users?
- Hide Theme options and Customize Admin menu
- Copyright messages for a particular set of pages
- Show a special message for private page?
- How can plugins have their own pages?
- wordpress reusable content blocks
- Add a plugin before main container
- Wondering what these multi-colored extra pages are?
- How to send little data between admin pages of my plugin?
- Create a custom page template inside my wordpress plugin
- how can I link to a PlugIn admin-sub-menu page after processing a formular
- View Private Published Page with URL Code (no login required)
- White page on custom plugin option submit
- Do action only on certain front end pages?
- Make menu page link inaccessible or disabled
- How to delete page by deactivating plugin
- WordPress web pages keep getting deleted (moved into the trash) by themselves
- Run plugins only on certain pages
- (FES EDD) New vendor submission page is blank
- Show existing POST categories as items in the sidebar menu [closed]
- Polylang : Interverting languages after development [closed]
- WordPress plugin/theme or other wayout to create portable pages?
- php page not found for plugin options menu
- Changing page URL and connect newsletter to MailChip
- Suggestions on Approach to New Plugin I’m Stuck On
- Dynamic admin submenu
- WordPress page and plugin list using sql query
- Create page from plugin, but have it completely hidden
- WP Plugins – Use includes to display page content
- How to add subcategories to the blogroll?
- How do I write an inventory list plugin that creates dynamic details pages?
- Can I allow certain people to add/edit pages within a parent?
- Proper way to replace the_content only for pages created by custom plugin
- Display Custom Field Value on Admin Page Column
- Would Gutenberg be considered a PlugIn?
- I need help locating a URL that is on my site map, but that I can’t find in my WordPress dashboard
- How to use add_submenu_page() for editors?
- Show author on every sub-page
- What’s causing this error? “Warning: Invalid argument”
- Move plugin-settings to ‘Settings’-menu in the admin
- How to have sample page for each new register users in a membership website
- Editing a text file from plugin menu
- One sub site is slow while all others load fine, same theme & plugins [closed]
- WordPress Admin Menu defining function is seperate file
- How to create a page with links to other pages that include image and excerpt?
- Thesis 2 custom Page
- Making my plugin create a page?
- creating a plug in that would tap into save/update action of posts [closed]
- Add Content to Content()
- Display Plugin Panels Outside of Admin Areas
- Simulating a wp page – wp page load sequence
- Why WP_Screeen doesn’t show all options with admin_body_class
- Plugin Admin Menu Boiler Plate
- add_submenu_page returns null
- Plugin – Admin menu page broken url
- How to create wordpress page that lets users create their own quiz? [closed]
- How do I add an options page at the bottom of the list?
- How to remove a CPT Menu from the Root Admin only
- Huge number of 404 pages getting spawned
- Get post content from outside the loop with plugin shortcode usability