Title: Saving Theme Options
Last modified: August 20, 2016

---

# Saving Theme Options

 *  [studioburst](https://wordpress.org/support/users/studioburst/)
 * (@studioburst)
 * [13 years, 6 months ago](https://wordpress.org/support/topic/saving-theme-options/)
 * I’ve been using theme options in my themes for a while, and want to extend them
   by basically replicating them as a sub-menu so I can add further options.
 * I believe the problem is caused in the way I have added the sub-menu, and how
   it’s saving them (can you tell I’m not experienced in this area?) note the “functions.
   php” part, I think I’m going wrong here.
 * Original theme options:
 *     ```
       function mytheme_add_admin() {
       		global $themename, $shortname, $options;
       		$optionvar = array();
       if ( isset($_GET['page']) && $_GET['page'] == basename(__FILE__) )  {
               if ( isset($_REQUEST['action']) && 'save' == $_REQUEST['action'] ) {
                       foreach ($options as $value) {
                           update_option( $value['id'], $_REQUEST[ $value['id'] ] ); }
                       foreach ($options as $value) {
                                   if( isset( $_REQUEST[ $value['id'] ] ) ) {
                                                               $optionvar[$value['id']] = $_REQUEST[ $value['id']];
                                                       } else {
                                                               $optionvar[$value['id']] = null;
                                                       }
                                               }
                                       update_option( $shortname."_options", $optionvar  );
                                       header("Location: admin.php?page=functions.php&saved=true");
                       die;
   
               } else if( isset($_REQUEST['action']) && 'reset' == $_REQUEST['action'] ) {
   
                   foreach ($options as $value) {
                       delete_option( $value['id'] ); }
   
                   header("Location: admin.php?page=functions.php&reset=true");
                   die;
   
               }
           }
   
           add_menu_page("MYOPTIONS", "MYOPTIONS", 'edit_themes', 'functions.php', 'mytheme_admin');
       }
       ```
   
 * Replicated the above into a seperate sub-menu under the above main admin item,
   it works perfectly but just fails to save these extra options (no errors):
 *     ```
       function xxmytheme_add_admin() {
       		global $xxthemename, $xxshortname, $xxoptions;
       		$xxoptionvar = array();
       if ( isset($_GET['page']) && $_GET['page'] == basename(__FILE__) )  {
               if ( isset($_REQUEST['action']) && 'save' == $_REQUEST['action'] ) {
                       foreach ($xxoptions as $xxvalue) {
                           update_option( $xxvalue['id'], $_REQUEST[ $xxvalue['id'] ] ); }
                       foreach ($xxoptions as $xxvalue) {
                                   if( isset( $_REQUEST[ $xxvalue['id'] ] ) ) {
                                                               $xxoptionvar[$xxvalue['id']] = $_REQUEST[ $xxvalue['id']];
                                                       } else {
                                                               $xxoptionvar[$xxvalue['id']] = null;
                                                       }
                                               }
                                       update_option( $xxshortname."_options", $xxoptionvar  );
                                       header("Location: admin.php?page=functions.php?page=extra&saved=true");
                       die;
   
               } else if( isset($_REQUEST['action']) && 'reset' == $_REQUEST['action'] ) {
   
                   foreach ($xxoptions as $xxvalue) {
                       delete_option( $xxvalue['id'] ); }
   
                   header("Location: admin.php?page=functions.php?page=extra&reset=true");
                   die;
   
               }
           }
   
       add_submenu_page( 'functions.php', 'MYEXTRAOPTIONS', 'MYEXTRAOPTIONS', 'edit_themes', 'functions.php?page=extra', 'xxmytheme_admin' );  
   
       }
       ```
   
 * These are only portions of the code but I believe it’s where the problem lies.
 * Can anyone spot where I’ve made a mistake, would really appreciate it as this
   would help me develop a much larger project.
 * Thanks.

The topic ‘Saving Theme Options’ is closed to new replies.

 * In: [Fixing WordPress](https://wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 0 replies
 * 1 participant
 * Last reply from: [studioburst](https://wordpress.org/support/users/studioburst/)
 * Last activity: [13 years, 6 months ago](https://wordpress.org/support/topic/saving-theme-options/)
 * Status: not resolved

## Topics

### Topics with no replies

### Non-support topics

### Resolved topics

### Unresolved topics

### All topics
