/** * Get the value of a field. */ function kirki_get_option($option = '') { // Make sure the class is instanciated Kirki::get_instance(); // Get the array of all the fields. $fields = Kirki::fields()->get_all(); // Get the config. $config = Kirki::config()->get_all(); /** * If no setting has been defined then return all. */ if ('' == $option) { if ('option' == $config['options_type']) { $values = array(); foreach ($fields as $field) { $values[] = get_option($field['settings'], $field['default']); } } else { $values = get_theme_mods(); } return $values; } // If a value has been defined then we proceed. // Early exit if this option does not exist if (!isset($fields[$option])) { return; } $option_name = $fields[$option]['settings']; $default = $fields[$option]['default']; if ('option' == $config['options_type']) { $value = get_option($option_name, $default); } else { $value = get_theme_mod($option_name, $default); } return $value; }
if (!defined('KIRKI_URL')) { define('KIRKI_URL', get_template_directory_uri() . '/modules/kirki'); } // Include the main plugin class include_once KIRKI_PATH . '/includes/class-kirki.php'; /** * The Kirki class autoloader. * Finds the path to a class that we're requiring and includes the file. */ function kirki_autoload_classes($class_name) { if (0 === stripos($class_name, 'Kirki')) { $foldername = 0 === stripos($class_name, 'Kirki_Controls_') ? 'controls' : ''; $foldername = 0 === stripos($class_name, 'Kirki_Scripts') ? 'scripts' : $foldername; $foldername = 0 === stripos($class_name, 'Kirki_Styles') ? 'styles' : $foldername; $foldername = '' != $foldername ? $foldername . DIRECTORY_SEPARATOR : ''; $class_path = KIRKI_PATH . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR . $foldername . 'class-' . strtolower(str_replace('_', '-', $class_name)) . '.php'; if (file_exists($class_path)) { include $class_path; } } } // Run the autoloader spl_autoload_register('kirki_autoload_classes'); // Include helper files include_once KIRKI_PATH . '/includes/deprecated.php'; include_once KIRKI_PATH . '/includes/sanitize.php'; include_once KIRKI_PATH . '/includes/helpers.php'; // Make sure the class is instanciated Kirki::get_instance();
/** * Get the value of a field. */ function kirki_get_option($option = '') { // Make sure the class is instanciated Kirki::get_instance(); // Get the array of all the fields. $fields = Kirki::fields()->get_all(); // Get the config. $config = Kirki::config()->get_all(); // If we're using options instead of theme_mods, // then first we'll have to get the array of all options. if ('option' == $config['options_type']) { $values = array(); if ('' == $config['option_name']) { // No option name is defined. // Each options is saved separately in the db, so we'll manually build the array here. foreach ($fields as $field) { $values[$field['settings']] = get_option($field['settings'], $field['default']); } } else { // An option_name has been defined so our options are all saved in an array there. $values = get_option($config['option_name']); foreach ($fields as $field) { if (!isset($values[$field['settings_raw']])) { $values[$field['settings_raw']] = maybe_unserialize($field['default']); } } } } if ('' == $option) { // No option has been defined so we'll get all options and return an array // If we're using options then we already have the $values set above. // All we need here is a fallback for theme_mods if ('option' != $config['options_type']) { // We're using theme_mods $values = get_theme_mods(); } // Early exit and return the array of all values return $values; } // If a value has been defined then we proceed. // Early exit if this option does not exist $field_id = 'option' == $config['options_type'] && '' != $config['option_name'] ? $config['option_name'] . '[' . $option . ']' : $option; if (!isset($fields[$field_id])) { return; } if ('option' == $config['options_type']) { // We're using options instead of theme_mods. // We already have the array of values set from above so we'll use that. $value = isset($values[$option]) ? $values[$option] : $fields[$option]['default']; } else { // We're using theme_mods $value = get_theme_mod($option, $fields[$option]['default']); } // Combine background options to a single array if ('background' == $fields[$field_id]['type']) { if ('option' == $config['options_type']) { $value = array('background-color' => isset($values[$option . '_color']) ? $values[$option . '_color'] : null, 'background-repeat' => isset($values[$option . '_repeat']) ? $values[$option . '_repeat'] : null, 'background-attachment' => isset($values[$option . '_attach']) ? $values[$option . '_attach'] : null, 'background-image' => isset($values[$option . '_image']) ? $values[$option . '_image'] : null, 'background-position' => isset($values[$option . '_position']) ? $values[$option . '_position'] : null, 'background-clip' => isset($values[$option . '_clip']) ? $values[$option . '_clip'] : null, 'background-size' => isset($values[$option . '_size']) ? $values[$option . '_size'] : null); } else { $value = array('background-color' => isset($fields[$field_id]['default']['color']) ? get_theme_mod($option . '_color', $fields[$field_id]['default']['color']) : null, 'background-repeat' => isset($fields[$field_id]['default']['repeat']) ? get_theme_mod($option . '_repeat', $fields[$field_id]['default']['repeat']) : null, 'background-attachment' => isset($fields[$field_id]['default']['attach']) ? get_theme_mod($option . '_attach', $fields[$field_id]['default']['attach']) : null, 'background-image' => isset($fields[$field_id]['default']['image']) ? get_theme_mod($option . '_image', $fields[$field_id]['default']['image']) : null, 'background-position' => isset($fields[$field_id]['default']['position']) ? get_theme_mod($option . '_position', $fields[$field_id]['default']['position']) : null, 'background-clip' => isset($fields[$field_id]['default']['clip']) ? get_theme_mod($option . '_clip', $fields[$field_id]['default']['clip']) : null, 'background-size' => isset($fields[$field_id]['default']['size']) ? get_theme_mod($option . '_size', $fields[$field_id]['default']['size']) : null); } } // Return the single value. // Pass it through maybe_unserialize so we're sure we get a proper value. return maybe_unserialize($value); }