My point of view is that main purpose and benefit of Settings API is structure.
It helps to keep complex settings setups:
- orderly (logic of registration and sections);
- secure (nonces, validation callbacks);
- extensible (hooking into another page or allowing to be hooked into).
As with any such structural overhead it benefits more complex use cases and benefits less simple ones.
So you do can implement anything Settings API does without using it. The question is if you can accomplish that in as reliable, secure and extensible way.
Related Posts:
- “Error: Options Page Not Found” on Settings Page Submission for an OOP Plugin
- Is get_option function cached?
- Where to store plugin settings fields
- What’s the best method for emptying an option created with the Settings API?
- Why won’t register_setting() create a setting?
- Performance of several get_option() calls
- Extend plugin options page
- Can I use the different settings sections over different pages using the save options group?
- Correct way check nonce (security) using old Options API
- How to add settings subpage from a plugin to a settings page created in theme?
- Remove Internal Style Sheet if no Value Provided?
- WordPress setting with select – where is my mistake?
- Custom delete option button in plugin settings
- Prevent invalid or empty values from being saved to the database and retain the form field values upon error
- Update problem with update_option() in combination with register_setting()
- Issue on Checkbox with Custom Option Page
- Settings API: Setting default option via ‘get_option’ fails
- Plugin setting page – update_option problem
- add_settings_error on validating plugin options API
- How do I build a settings panel under the plugin
- Add_menu_page and saving settings
- Options don’t save, validation callback not executed
- Settings API not Saving to Database or Display
- Admin Message after Plugin Option Updated
- Settings API with arrays example
- How do I add CSS options to my plugin without using inline styles?
- How come `wp_options` table does not have an index on `autoload`?
- Adding Widget form fields dynamically
- Is get_option() faster than accessing get_transient()?
- How to Use Checkbox in Custom Option Page Using The Setting API
- How should one implement add_settings_error on custom menu pages?
- WordPress updates defined vs add_filter?
- Creating Settings Page with dropdowns for Plugin
- How to properly sanitize strings for update_option()
- How to add a new plugin page under desired Options page?
- Which to use to execute code during the saving of a plugin settings page?
- Nonce in settings API with tabbed navigation
- How to use the settings API to set multidimensional arrays
- How do I handle multiple Submit buttons in plugin’s option page?
- Deletion of shared options using uninstall.php
- Multiple entries in get_option results? or why is _multiwidget set to 1?
- update_option is not working!
- update_option_{$option} Too Few Arguments
- How to store accumulate multiple option values in a single array using Options_API
- array_map() for sanitizing $_POST
- WordPress Plugin Setting’s POST
- What is the use of get_option method
- Options API – Validation Callback $input is NULL
- Generating User(s) with Settings API
- How to store a medium amount of options?
- Plugin options not being saved or created
- What could cause my plugin’s options/settings page not to load?
- How to set “Site Address (URL)” programmatically on WP multisite?
- null callback in add_settings_section
- Using wp_parse_args to set up Plugin Default Settings
- Single sanitization callback for multiple fields
- Callback is not called in add_settings_field() when passed as part of an array, but recognises that it’s there. It’s passed Class to Class using OOP
- When to use add_settings_section vs just register_setting?
- Adding settings link to plugin doesn’t work
- How to fix Uninitialized string offset: error on a checkbox in WP Settings API
- WP_Editor – Saving Value into Plugin Option – Stripping HTML
- Multiple options pages validation for a plugin
- How to get specific setting by settings_fields()?
- Updating Woocommerce Settings API when WordPress Settings API saved and vise versa
- Whitelisting items from custom options page
- get_option() not returning expected value from plugin
- Parse form values before sending to options.php
- Settings API with arrays example
- Allow users to add / remove settings in plugin
- Insert/Update values to a table after blogname option etc. is updated
- wordpress how to query wp_options table
- Plugin Options Array Set to Undefined
- Checked() function on a multidimensional array
- Default settings aren’t used
- Can I use register_settings and unregister_setting once the settings page has loaded?
- WordPress theme options Menu
- Category select options for plugin settings
- Make Database query only when option is updated
- how to save wp_editor html content in options table
- settings api – add_settings_section not working
- Multiple page plugin settings
- Update plugin settings option_name for big plugin update
- What could cause a WP Option to get truncated?
- Decontruct serialized data array from wp_options
- It is possible to pass $args that sent by add_settings_field() inside another function?
- How to save Setting pages data to the database?
- How does one update complex options?
- Settings API not saving
- Hide / show settings field based on other field’s value
- Plugins Settings page not updating
- How to save the option’s new values plus old value without overwrite old one
- WordPress Boilerplate Plugin doesn’t see callback functions for add_settings_field and add_settings_section
- Cannot save settings value
- From my Plugin Settings Page use check boxes to load specific css files (e.g. Bootstrap / Foundation)
- When using an options array the Settings API isn’t creating the database record
- the correct way to use options from settings page [closed]
- Menu_slug used for creating options page
- How to delete all the options in an option group
- WordPress Plugin default option
- move setting data from wordpress api to codestar freamwork