Check out the Administration Menus section in the Codex, I actually used it pretty heavily over the last couple days to create a sub-menu and it helped a lot. It goes into detail on the top level menus as well.
You’ll specifically need the add_menu_page() function to create the top level menu, as well as the add_submenu_page() function to create the sub menus. From there it’s just a matter of meticulously adding options and setting fields.
Also of great help in understanding the flow of things was Otto’s WordPress Settings API Tutorial.
Related Posts:
- How to Add an Index to Plugin Database table
- Creating two database tables via plugin
- How does WordPress handle MySQL row lock errors?
- WordPress register_activation_hook table creation not working
- Default Plugin Settings Not Writing to Database
- Building an email signup form. Where should the information be saved in the DB?
- Plugin Options Not Saving to Database in WP 4.5
- How to create custom tables in WordPress using my own plugin?
- Is it possible to create Custom Post plug-in?
- Help With MySQL to WPDB Query Conversion
- Prevent duplicate records in plugin table
- WordPress Backend HA (Automatic failover)
- How can I change the meta_key for a particular piece of information?
- Can I create a table on my DB without creating a plugin?
- WordPress : Explain Plugins & Theme string value in database
- Is it necessary to auto delete my WP plugin database tables when users deactivate/delete my plugin?
- How to insert and call new data in wordpress website database through a plugin
- WPDB: Update table
- Issue running db create table query from static method
- Separate database for a wordpress plugin
- Best/Correct way to add an option to a category
- What is the WordPress approach to custom data?
- How to create plugin/ page that reads from database
- DB Query not working in Plugin
- Comment “like” problem – “users who like this” avatar linking to current user profile instead of “liker’s” profile
- WordPress plugin: efficient way to store large data
- Integrating Custom Database with WordPress
- How to display results from a data table with an encrypted user id?
- How to make a Product page without ordering and database
- I want to schedule email (date, time is in database->table) wp_schedule_event() not working
- How to securely controlling data without keeping it in postmeta?
- $wpdb->insert not working inside save_post tag
- Where do the section input fields values are stored in database
- My plugin can’t see my files
- how can i get records from wp_postmeta table using particular meta_key in database?
- Creating fields in the database
- How to submit the custom form data in database in WordPress without plugin?
- get_option returning a different value from what’s saved
- How can I delete the options from DB when the plugin is deleted?
- register_activation_hook not working
- On the same site, how do I send data from a plugin file to a theme file?
- plugin doesn’t retrieve data from database
- Get plugin directory from a theme
- Rewriting every url
- How can I make my custom shortcode work in a Custom HTML Widget?
- Custom admin column disappearing when using Quick Edit [duplicate]
- Create page when plugin is activated
- How to un-attach rich text editor from named textarea elements
- how to not show plugin in admin area
- Memory Leak in plugin action
- Getting User email on logout. wp_logout
- Ajax call doesn’t work in frontend but it’s working in backend (when I’m logged in)
- Can a plugin add to header/footer/body content?
- Taking WordPress table prefixes into account
- Changing BIGINT to INT
- How Can A Plugin Hook Itself To the End of Every Excerpt?
- Allow Facebook to preview posts before published
- Get total number of comment of the posts written by an author
- add action for displaying posts using a shortcode
- Best way to hook a custom url?
- How to cancel WordPress’ action/filter when using OOP with anonymous callback
- How do I add a custom sub menu menu under Woo-commerce marketing?
- How to load plugin after page is loaded – pagespeed issues
- When to use action hooks and plugins
- Do action only on certain front end pages?
- Create a navbar filter that filters by a custom field
- Migrating to WordPress Recipe Plugin and Some SQL Issues
- add tabs in rdp-plugin/includes/settings.php and get settings saved
- WordPress plugin creating database in localhost but not on real host
- Can plugin2 uninstall plugin1 at the very beginning of plugin2’s installation?
- plugin dev – minimum base css specificity?
- I changed font of wordpress dashboard but it is slow!
- Creating a functionality plugin to edit seriously simple podcasting
- Plugin temporary files and files to download via FTP
- How to add credit card validation check to wordpress [closed]
- Next Previous Post in wordpress with previous / next link with title?
- How to use existing hook in twentytwelve to all theme of wordpress?
- How to Get Category Name When Export Products
- Remove List Bullets
- How to set plugin auto-update Enabled by default?
- Custom plugin activation error
- How do I add a medium to the WordPress database with my own plugin?
- How to capture hidden values with Gravity Forms
- How to translate to spanish wordpress hardcoded content/files?
- How to Create a Learning Management Plugin in WordPress to Manage Courses [LMS]
- Paid Membership Pro displaying a user name in PHP
- Make another copy of a plugin and install it
- Store admin page into variable
- Custom plugin giving: wp-admin/admin-ajax.php 400 (Bad Request)
- WP Plugin CSS not being applied to page
- Overwriting Plugin’s Ajax callback function from theme
- How can I get the Post ID and Post Type within a Must Use Plugin?
- Unable to sync woocommerce variations
- Can’t find variable is_single in my jQuery plugin
- WordPress Cron function is not working
- Plugin hook breaks new WP 4.0 media library grid view?
- How to get site homepage from plugin?
- How to create a custom wordpress plugin for a specific functionality?
- Redux Framework slides field – How Can i add new placeholder Filed? [closed]
- Remove H1 title in admin post edit screen