Skip to Content
Menu

get_color()

Get the color value from the appropriate location (Customizer, Parent Theme, or Child Theme).

PHP June 7, 2019

Usage

PHP
nebula()->get_color($color, $specific_location, $default)

Parameters

$color
(Optional) (String) Which color to get
Default: primary

$specific_location
(Optional) (String) Only look in a single location for this color
Default: false

$default
(Optional) (String (color)) The color to return if the requested is not found
Default: black

Parameter Notes

Color names will be normalized, so ‘primary_color’, ‘primary’, and ‘$primary_color’ are all equivalent.

Specific locations that can be used are ‘customizer’, ‘child’, or ‘parent’. Or leave it blank to check each in their appropriate priority.

If the color exists in the specified location, but is commented out this will return the default color or black.

Request or provide clarification »

Additional Notes

This function has an alias sass_color().

Was this page helpful? Yes No


    A feedback message is required to submit this form.


    Please check that you have entered a valid email address.

    Enter your email address if you would like a response.

    Thank you for your feedback!

    Source File

    Located in /libs/Utilities/Sass.php on line 453.

    1 Hook

    Find these filters and actions in the source code below to hook into them. Use do_action() and add_filter() in your functions file or plugin.

    Filters
    "pre_get_color"
    Need a new filter hook? Request one here.

    Actions
    This function has no action hooks available. Request one?

    PHP
            public function get_color($color='primary', $specific_location=false, $default='black'){
                $override = apply_filters('pre_get_color', null, $color, $specific_location);
                if ( isset($override) ){return $override;}
    
                $color = $this->normalize_color_name($color);
    
                //Check the Customizer
                if ( empty($specific_location) || $specific_location === 'customizer' ){
                    $theme_mod_color = get_theme_mod('nebula_' . $color);
                    if ( !empty($theme_mod_color) ){
                        return $theme_mod_color;
                    }
                }
    
                //Check the child theme
                if ( empty($specific_location) || $specific_location === 'child' ){
                    if ( is_child_theme() ){
                        $child_theme_color = $this->get_sass_variable($color, 'child', 'color');
    
                        if ( !empty($child_theme_color) ){
                            return $child_theme_color;
                        }
                    }
                }
    
                //Check the parent theme
                if ( empty($specific_location) || $specific_location === 'parent' ){
                    $parent_theme_color = $this->get_sass_variable($color, 'parent', 'color');
    
                    if ( !empty($parent_theme_color) ){
                        return $parent_theme_color;
                    }
                }
    
                return $default; //Return the default color if provided, otherwise return black
            }
    

    Override

    To override this PHP function, use this hook in your child theme or plugin ("my_custom" can be changed):

    PHP
    add_filter('pre_get_color', 'my_custom_get_color', 10, 4); //The last integer must be 1 more than the actual parameters
    function my_custom_get_color($null, $color, $specific_location, $default){ //$null is required, but can be ignored
        //Write your own code here
    
        return true; //Return true to prevent the original function from running afterwords
    }

    You can completely disable this PHP function with a single line actions:

    PHP
     add_filter('pre_get_color', '__return_false');