Custom Theme Options

Created by Nicearma.

$section) { add_settings_section($section['id'], $section['name'], $section['callback'], $section['page']); } foreach ($basico_menu_option as $key => $option) { add_settings_field($key, $option['name'], $option['callback'], $basico_menu_section[$option['section']]['page'], $option['section'], $option); } // Register the settings with Validation callback register_setting('basico_theme_options', 'basico_theme_options', 'basico_validate_settings'); } /** * Function to add extra text to display on each section * * @since Basico 1.0 */ function basico_display_section($section) { } /** * * * Function to display the settings on the page * * @since Basico 1.0 */ function basico_display_setting($args) { //TODO: change this, I dont like this kind of logic extract($args); $option_name = 'basico_theme_options'; $options = basico_get_options(); if (!array_key_exists($id, $options)) { $options[$id] = ''; } switch ($type) { case 'text': $options[$id] = stripslashes($options[$id]); $options[$id] = esc_attr($options[$id]); echo ''; echo ($desc != '') ? '
' . $desc . '' : ""; break; case 'textarea': $options[$id] = stripslashes($options[$id]); $options[$id] = esc_attr($options[$id]); echo ''; echo ($desc != '') ? "
$desc" : ""; break; case 'checkboxs': foreach ($std as $checkbox) { if (!array_key_exists($checkbox['value'], $options)) { $options[$checkbox['value']] = ''; } $options[$checkbox['value']] = stripslashes($options[$checkbox['value']]); $options[$checkbox['value']] = esc_attr($options[$checkbox['value']]); echo $checkbox['text'] . ' : ' . ' |'; } break; case 'select': $options[$id] = stripslashes($options[$id]); $options[$id] = esc_attr($options[$id]); echo ''; echo ($desc != '') ? "
$desc" : ""; break; case 'upload': $options[$id] = stripslashes($options[$id]); $options[$id] = esc_attr($options[$id]); echo ''; echo ''; echo ($desc != '') ? "
$desc" : ""; break; } } /** * Basico validate function * * @global array $basico_menu_option * @param type $input * @return type * @since Basico 1.0 */ function basico_validate_settings($input) { basico_init_array_menu_options(); global $basico_menu_option; foreach ($input as $k => $v) { if(empty($basico_menu_option[$k]['validator'])){ $newinput[$k] =$v; }else{ $newinput[$k] = call_user_func($basico_menu_option[$k]['validator'], $v); } } return $newinput; } function basico_validate_html($var) { return wp_kses($var); } function basico_validate_text_simple($var) { return esc_html($var); } function basico_validate_url($var) { return esc_js($var); }