function genesis_register_theme_settings() { register_setting(GENESIS_SETTINGS_FIELD, GENESIS_SETTINGS_FIELD); add_option(GENESIS_SETTINGS_FIELD, genesis_theme_settings_defaults()); if (!isset($_REQUEST['page']) || $_REQUEST['page'] != 'genesis') { return; } if (genesis_get_option('reset')) { update_option(GENESIS_SETTINGS_FIELD, genesis_theme_settings_defaults()); wp_redirect(admin_url('admin.php?page=genesis&reset=true')); exit; } }
/** * This registers the settings field and adds defaults to the options table. * It also handles settings resets by pushing in the defaults. */ function genesis_register_theme_settings() { register_setting(GENESIS_SETTINGS_FIELD, GENESIS_SETTINGS_FIELD); add_option(GENESIS_SETTINGS_FIELD, genesis_theme_settings_defaults()); if (!isset($_REQUEST['page']) || $_REQUEST['page'] != 'genesis') { return; } if (genesis_get_option('reset')) { update_option(GENESIS_SETTINGS_FIELD, genesis_theme_settings_defaults()); genesis_admin_redirect('genesis', array('reset' => 'true')); exit; } }
/** * This function is what actually gets output to the page. It handles the markup, * builds the form, outputs necessary JS stuff, and fires <code>do_meta_boxes()</code> */ function genesis_theme_settings_admin() { global $_genesis_theme_settings_pagehook, $screen_layout_columns; if ($screen_layout_columns == 3) { $width = "width: 32.67%"; } elseif ($screen_layout_columns == 2) { $width = "width: 49%;"; $hide3 = " display: none;"; } else { $width = "width: 99%;"; $hide2 = $hide3 = " display: none;"; } ?> <div id="genesis-theme-settings" class="wrap genesis-metaboxes"> <form method="post" action="options.php"> <?php wp_nonce_field('closedpostboxes', 'closedpostboxesnonce', false); ?> <?php wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false); ?> <?php settings_fields(GENESIS_SETTINGS_FIELD); // important! ?> <input type="hidden" name="<?php echo GENESIS_SETTINGS_FIELD; ?> [theme_version]>" value="<?php esc_attr(genesis_option('theme_version')); ?> " /> <?php screen_icon('options-general'); ?> <h2><?php _e('Genesis - Theme Settings', 'genesis'); ?> </h2> <div class="top-buttons"> <input type="submit" class="button-primary" value="<?php _e('Save Settings', 'genesis'); ?> " /> <input type="submit" class="button-highlighted" name="<?php echo GENESIS_SETTINGS_FIELD; ?> [reset]" value="<?php _e('Reset Settings', 'genesis'); ?> " /> </div> <?php if (genesis_get_option('reset')) { update_option(GENESIS_SETTINGS_FIELD, genesis_theme_settings_defaults()); echo '<div id="message" class="updated" id="message"><p><strong>' . __('Theme Settings Reset', 'genesis') . '</strong></p></div>'; } elseif (isset($_REQUEST['updated']) && $_REQUEST['updated'] == 'true') { echo '<div id="message" class="updated" id="message"><p><strong>' . __('Theme Settings Saved', 'genesis') . '</strong></p></div>'; } ?> <div class="metabox-holder"> <div class="postbox-container" style="<?php echo $width; ?> "> <?php do_meta_boxes($_genesis_theme_settings_pagehook, 'column1', null); ?> </div> <div class="postbox-container" style="<?php echo $width; echo $hide2; ?> "> <?php do_meta_boxes($_genesis_theme_settings_pagehook, 'column2', null); ?> </div> </div> <div class="bottom-buttons"> <input type="submit" class="button-primary" value="<?php _e('Save Settings', 'genesis'); ?> " /> <input type="submit" class="button-highlighted" name="<?php echo GENESIS_SETTINGS_FIELD; ?> [reset]" value="<?php _e('Reset Settings', 'genesis'); ?> " /> </div> </form> </div> <script type="text/javascript"> //<![CDATA[ jQuery(document).ready( function($) { // close postboxes that should be closed $('.if-js-closed').removeClass('if-js-closed').addClass('closed'); // postboxes setup postboxes.add_postbox_toggles('<?php echo $_genesis_theme_settings_pagehook; ?> '); }); //]]> </script> <?php }