See How do you create a “virtual” page in WordPress for the solution. This should work for your case as well.
Related Posts:
- Settings API updated messages won’t show if custom admin page not hooked into add_options_page()
- How can I load a page template from a plugin?
- Why does WordPress have a noop.php file?
- Overwrite theme file from plugin
- Do I need to use WP_Filesystem when creating a downloadable file on the fly?
- When wp_schedule_event action has two possible directions, how to avoid an infinite loop?
- The ideal place for storing persistent PHP objects
- Preparing a string in an array for localization
- Change WordPress.org hosted plugin readme.txt
- get_posts / WP_Query Memory size of 134217728 bytes exhausted
- How to Use WordPress Color Picker API in Custom Post Type Metabox
- Formatting of curly brackets array from WP database to get more readable output
- WP_Error handles errors, but how can I show success with a message?
- `wp_set_script_translations` with `wp.i18n` does not return translated strings in simple plugin
- Sessions not creating correctly in custom function
- Problem with `wp_mail()`
- How to add meta boxes to the ‘Add new post’ screen?
- Load WooCommerce templates from my plugin folder first
- How to determine wordpress base path when wordpress core is not loaded
- Calling a function from functions.php in custom page/ blog post
- update_option is not working!
- add_menu_page() with function inside a class [duplicate]
- Does WP Have a Function To Generate .htaccess RewriteCond?
- Changing bloginfo description from a plugin
- wp_enqueue_style built in styles
- Overwrite default XMLRPC function from plugin
- WordPress Plugin Setting’s POST
- Cannot modify header information – headers already sent by pluggable.php
- htmlentities and editing text
- Gutenberg registerFormatType with Multiple Classes
- Best way to notify WordPress plugin users of new release candidates for beta testing?
- How to update total price of completed order in woocommerce? [closed]
- How do I create a custom api endpoint?
- How do I add a custom sublevel menu specified in one directory to a custom top level menu specified in another directory?
- wp_localize_script and host/browser cache
- How to run a external JavaScript file on wp-admin if admin, and other if normal user?
- Get a custom table to an array
- Turn off Admin Bar (Toolbar) in backend – no easy way
- Error : “Cannot use object of type WP_Post as array in”
- Replacing Scripts in Admin Load_Scripts
- How to filter content on Save/Publish to add rel=”nofollow” to all external links?
- When to use add_settings_section vs just register_setting?
- How to show active version on wordpress.org of a published plugin?
- How to customize login process
- How should I store a log for my plugin
- Adding more text to a post, after it was published
- How to modify the comments to be displayed in a post?
- Find out Requires WP tag for a plugin when submitting it
- what is the difference between these phares?
- WP_Query filters
- Plugin Architecture Question: How to avoid using transients
- SSL certificate verify failed
- How to load library scripts in admin from plugins in noConflict wrapper?
- wordpress how to query wp_options table
- rest_no_route on custom API endpoint wordpress
- How to only load css for used blocks on frontend
- adding wp-cli commands to plugin: how to document to users?
- Additional classes `undefined` after saving post in Gutenberg
- How do you submit a Gutenberg plugin?
- Creating an empty page programatically
- Multiple API Endpoints (wp_remote_get)
- plugin_dir_url & plugin_basename not working when plugin dir is outside wordpress dir
- How to replace default comments with custom HTML?
- WP nonce field checkbox prints checked=’checked’ outside input field
- Make dynamic string translatable
- Creating two tables in database on activation hook
- wp_schedule_event is registered but function isn’t running
- Simple plugin don’t display content
- How to receive notification of deprecated API elements and functions?
- How to make an admin plugin menu page go full screen?
- It is possible to pass $args that sent by add_settings_field() inside another function?
- Change reminder email date to 14 days before
- Woocommerce get_term_by() in transition_post_status hook doesn’t works
- Home page is not loading, where in other pages are displaying on the site
- Custom table / Alternative to WP_List_Table
- Why is that only the first row getting inserted into Mysql table when i import csv file on backend custom plugin?
- Adding Amchart Interface to WordPress API
- WordPress Own Rewrite Rules
- Don’t print customizer styles when no setting has been used
- bindParam? WordPress 4.9.5 SQL LIKE statement %s and %LIKE%
- tweaking the
- Plugin with functions inside a class & how to trigger WP CRON
- external Integration with wordpress timeout error
- add_settings_error on validating plugin options API
- Problem to return more than single line captions
- Unable to show a message after plugin activation
- How to get an array out of a nav menu if it’s a plugin?
- Use plupload to upload images and save them to custom folder and database table
- How to add conent (text) to Add New pages form of admin in WordPress
- Can I access WordPress API’s from within plugin scripts?
- Is there a way to make is_search() always return false
- Ajax url value to pass ‘variable’ to use in query
- Apply Filters Causing a 500 Internal Server Error
- Open media box library from link
- Help interpreting @wordpress/create-block-tutorial-template usage error
- Leveraging Core Functionality in Icon Upload Plugin [closed]
- How can I chanage the user for the composer container in wp-env?
- Adding a navigation with wp_nav_menu() to a custom block in the site editor
- Why isn’t custom sidebar panel not showing up in the Gutenberg Editor?
- Ninja Forms: Front-End Forms, Post ID?