The hierarchy of storing data roughly goes like this (from less functional/complex to more):
- Transients API
- Options API
- Settings API
- Database Tables
- Custom file cache
Since from your description Options are too limited and database too complex, I would look at Settings.
Related Posts:
- framework for plugin/theme options panel? [closed]
- How do I add CSS options to my plugin without using inline styles?
- “Error: Options Page Not Found” on Settings Page Submission for an OOP Plugin
- Is get_option function cached?
- How come `wp_options` table does not have an index on `autoload`?
- Update Option Stored in Multi-Dimensional Array
- What are the advantages to the Settings API?
- Adding Widget form fields dynamically
- Where to store plugin settings fields
- Is get_option() faster than accessing get_transient()?
- What’s the best method for emptying an option created with the Settings API?
- Releasing new plugin version, how to rename old options keys?
- 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?
- How do I handle multiple Submit buttons in plugin’s option page?
- Deletion of shared options using uninstall.php
- Why won’t register_setting() create a setting?
- Multiple entries in get_option results? or why is _multiwidget set to 1?
- Dropdown list of pages to get page id to store in plugin options
- update_option is not working!
- update_option_{$option} Too Few Arguments
- Save user-specific options in WordPress admin
- How to store accumulate multiple option values in a single array using Options_API
- Creating option to allow user to select the page my plugin content will display on
- Unified Approach for Placing Option Pages
- array_map() for sanitizing $_POST
- WordPress plugin options and jQuery
- WordPress Plugin Setting’s POST
- 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?
- Options API – Validation Callback $input is NULL
- Best choice of options/settings framework for plugin/theme development
- Correct way check nonce (security) using old Options API
- How to add settings subpage from a plugin to a settings page created in theme?
- Plugin options not being saved or created
- Remove Internal Style Sheet if no Value Provided?
- What could cause my plugin’s options/settings page not to load?
- How to set “Site Address (URL)” programmatically on WP multisite?
- WordPress setting with select – where is my mistake?
- Using wp_parse_args to set up Plugin Default Settings
- Custom delete option button in plugin settings
- Storing product price data in the database
- How To Change Post Author Default?
- WP_Editor – Saving Value into Plugin Option – Stripping HTML
- Editing options pages?
- Multiple options pages validation for a plugin
- get_option() not returning expected value from plugin
- Parse form values before sending to options.php
- 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()
- Insert/Update values to a table after blogname option etc. is updated
- Access bloginfo, get_option, and plugins_url from a non-core php file
- wordpress how to query wp_options table
- How Can I add Fields in wp-option table?
- Plugin Options Array Set to Undefined
- Checked() function on a multidimensional array
- get_option() will not work without access to wp-config.php
- Issue on Checkbox with Custom Option Page
- Make Database query only when option is updated
- The Correct Way to Use Nonce Field without Settings API
- Settings API: Setting default option via ‘get_option’ fails
- how to save wp_editor html content in options table
- Custom Plugin Options Won’t Update
- Problem with display data from get_option
- Use options to control jQuery plugin
- why does get_option( ‘home’ ) not work while using in plugin [closed]
- Plugin Options not saving options and doesn’t work
- What could cause a WP Option to get truncated?
- Decontruct serialized data array from wp_options
- Add multiple checkboxes as single field to Custom Shipping Method Settings Page
- How does one update complex options?
- update_option() passing empty array() but still updating
- Plugins Settings page not updating
- How to create plugin settings page for each admin user?
- Plugin setting page – update_option problem
- add_settings_error on validating plugin options API
- Cannot save settings value
- Array/List Edit in Backend
- What should I use instead of get_blog_option?
- Tie specific functions to options-update for limiting API requests
- Can’t switch theme after activation
- How do I build a settings panel under the plugin
- update_option() updating the option with an empty value?
- the correct way to use options from settings page [closed]
- Add_menu_page and saving settings
- Plugin options page – save two related options as one entry
- Saving multiple fields as array
- Options don’t save, validation callback not executed
- Menu_slug used for creating options page
- Modify a Themes Appearance >> Header admin screen from a plugin
- Settings API not Saving to Database or Display
- Admin Message after Plugin Option Updated
- Add Custom User Capabilities Before or After the Custom User Role has Been Added?
- How do I dynamically render an InnerBlock inside a dynamic block?
- How to filter the_content() & include content from template
- wp_mail() headers multipart/alternative
- append code after the_content not working