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
- How to change a user’s password programatically
- How would you require and automatically download dependent plugins?
- How to delete custom taxonomy terms in plugin’s uninstall.php?
- Redirect to settings page after install
- Simple form that saves to database
- What is the correct way for a theme to support plugin UIs?
- How does WordPress determine the primary plugin PHP file?
- translation does not work with text_domain
- Publish Post After Click On A Link
- Custom url structure for custom template
- Having separate plugins and themes folder for multi-site setup
- gallery option is not available in media upload box in costum theme option page
- If I delete plugins via FTP are settings kept in DB?
- Many plugins making WordPress run slow by design?
- Add keywords meta to index.php page
- How to create ‘import dummy data’ option in custom wordpress plugin
- Object Oriented Plugin not working
- How to check if tables in WordPress still exists after activations
- What are the specifics of WordPress development I need to know? [closed]
- Insert data from .sql file in wordpress plugin
- How can i get the post’s full html source by its ID?
- Force file download on plugin activation
- How to change the name of the “edit my profile” link in the WordPress admin backend
- WordPress Jquery UI Spinner
- Is there a rule for wordpress plugins developers to not do any database changes upon update?
- How can I add IP address to my post?
- add seperate suffix for low price and high price in woocommerce
- How to add/change (woocommerce) product tab icon
- Best way to retrieve data in custom api extended from wp-api
- How to set the default value as the saved value once a form of widget is saved?
- add_action for publish_post doesn’t work
- How does the WP repository determine that two plugins are the same when counting active installs?
- Need to edit author permissions | custom taxonomy
- Where do I put the code snippets I found here or somewhere else on the web?
- Is it possible to pin a post in second position from top
- admin_notices show after load completed
- Activate Plugin Automatically After Set Time
- Optimise wordpress database using SQL after deleting registered images from Media Folder
- function post to trash problem
- How to call function in WordPress on button click?
- How to implement data residency in my WordPress site
- How can I see $post object in frontend from functions.php?
- Move plugin pages from dashboard to front-end
- Allow members to create groups on my site
- Get post content inside plugin class method
- Plugin: Translated plugin is “not translated”
- Ubermenu 3 Nav Bar Customization
- Many to many relationship for variable products
- Update Plugin Without Overwriting Custom Settings
- Create Array from data in the OPTIONS table
- How to create and use Custom hooks
- Custom Function for SEO by Yoast plugin
- Combining JS files to one script
- What are the downsides of using bootstrap in plugin development?
- How to generate a responsive output from plugin?
- The plugin generated xxx characters of unexpected output during activation
- Shortcode returning specific content of a post
- How to add custom html to the Media > Attachment Details modal?