Kirki_Styles_Frontend::loop_controls PHP Method

loop_controls() public static method

Loop through all fields and create an array of style definitions.
public static loop_controls ( string $config_id )
$config_id string The configuration ID.
        public static function loop_controls($config_id)
        {
            // Get an instance of the Kirki_Styles_Output_CSS class.
            // This will make sure google fonts and backup fonts are loaded.
            Kirki_Styles_Output_CSS::get_instance();
            $fields = Kirki::$fields;
            $css = array();
            // Early exit if no fields are found.
            if (empty($fields)) {
                return;
            }
            foreach ($fields as $field) {
                // Only process fields that belong to $config_id.
                if ($config_id != $field['kirki_config']) {
                    continue;
                }
                // Only continue if field dependencies are met.
                if (!empty($field['required'])) {
                    $valid = true;
                    foreach ($field['required'] as $requirement) {
                        if (isset($requirement['setting']) && isset($requirement['value']) && isset($requirement['operator'])) {
                            $controller_value = Kirki_Values::get_value($config_id, $requirement['setting']);
                            if (!Kirki_Active_Callback::compare($controller_value, $requirement['value'], $requirement['operator'])) {
                                $valid = false;
                            }
                        }
                    }
                    if (!$valid) {
                        continue;
                    }
                }
                // Only continue if $field['output'] is set.
                if (isset($field['output']) && !empty($field['output']) && 'background' != $field['type']) {
                    $css = Kirki_Helper::array_replace_recursive($css, Kirki_Styles_Output_CSS::css($field));
                    // Add the globals.
                    if (isset(self::$css_array[$config_id]) && !empty(self::$css_array[$config_id])) {
                        Kirki_Helper::array_replace_recursive($css, self::$css_array[$config_id]);
                    }
                }
            }
            $css = apply_filters('kirki/' . $config_id . '/styles', $css);
            if (is_array($css)) {
                return Kirki_Styles_Output_CSS::styles_parse(Kirki_Styles_Output_CSS::add_prefixes($css));
            }
            return;
        }

Usage Example

コード例 #1
0
<?php

/**
 * Do not allow directly accessing this file.
 */
if (!class_exists('Kirki')) {
    die('File can\'t be accessed directly');
}
/**
 * Make sure we set the correct MIME type
 */
header('Content-Type: text/css');
/**
 * Echo the styles
 */
$configs = Kirki::$config;
foreach ($configs as $config_id => $args) {
    if (true === $args['disable_output']) {
        continue;
    }
    echo Kirki_Styles_Frontend::loop_controls($config_id);
}
All Usage Examples Of Kirki_Styles_Frontend::loop_controls