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);
}