BossBey File Manager
PHP:
8.2.30
OS:
Linux
User:
imagivibe
Root
/
home
/
imagivibe
/
public_html
/
CTR
/
wp-content
/
themes
/
go
/
includes
📤 Upload
📝 New File
📁 New Folder
Close
Editing: customizer.php
<?php /** * Customizer setup * * @package Go\TGM */ namespace Go\Customizer; use function Go\get_palette_color; use function Go\hex_to_hsl; /** * Set up Customizer hooks * * @return void */ function setup() { $n = function ( $function ) { return __NAMESPACE__ . "\\$function"; }; add_action( 'customize_register', $n( 'register_control_types' ) ); add_action( 'customize_register', $n( 'default_controls' ) ); add_action( 'customize_register', $n( 'register_site_title_controls' ) ); add_action( 'customize_register', $n( 'register_logo_controls' ) ); add_action( 'customize_register', $n( 'register_color_controls' ) ); add_action( 'customize_register', $n( 'register_global_controls' ) ); add_action( 'customize_register', $n( 'register_header_controls' ) ); add_action( 'customize_register', $n( 'register_footer_controls' ) ); add_action( 'customize_register', $n( 'register_social_controls' ) ); add_action( 'customize_register', $n( 'register_menu_controls' ) ); add_action( 'customize_register', $n( 'rename_panels' ) ); add_action( 'customize_preview_init', $n( 'customize_preview_init' ) ); add_action( 'customize_controls_enqueue_scripts', $n( 'customize_preview_init' ) ); add_action( 'customize_preview_init', $n( 'enqueue_controls_assets' ) ); add_action( 'wp_head', $n( 'inline_css' ) ); add_action( 'wp_nav_menu_args', $n( 'wp_nav_register_fallback' ) ); } /** * Register our custom control types. * * @param \WP_Customize_Manager $wp_customize The customizer object. * * @return void */ function register_control_types( \WP_Customize_Manager $wp_customize ) { // This file is a class for our Customizer switcher control, not template partials. // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once get_parent_theme_file_path( 'includes/classes/customizer/class-switcher-control.php' ); // This file is a class for our Customizer range control, not template partials. // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once get_parent_theme_file_path( 'includes/classes/customizer/class-range-control.php' ); // This file is a class for our Customizer range control, not template partials. // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound require_once get_parent_theme_file_path( 'includes/classes/customizer/class-title-control.php' ); $wp_customize->register_control_type( Switcher_Control::class ); $wp_customize->register_control_type( Range_Control::class ); $wp_customize->register_control_type( Title_Control::class ); } /** * Display a placeholder in the customizer if a menu has not been assigned, * * @param array $args Array of nav menu arguments. */ function wp_nav_fallback( $args ) { if ( ! is_customize_preview() ) { return; } $registered_nav_menus = get_registered_nav_menus(); $menu_slug = $args['theme_location']; $instance_id = $args['customize_preview_nav_menus_args']['args_hmac']; $attributes = ''; $attrs = array( 'data-customize-partial-id' => 'nav_menu_instance[' . esc_attr( $instance_id ) . ']', 'data-customize-partial-type' => 'nav_menu_instance', 'data-customize-partial-placement-context' => wp_json_encode( $args['customize_preview_nav_menus_args'] ), ); $attributes = implode( ' ', array_map( function ( $key, $value ) { return sprintf( '%s="%s"', $key, esc_attr( $value ) ); }, array_keys( $attrs ), $attrs ) ); printf( '<p class="u-informational" %1$s id="menu-primary-navigation"> %2$s </p>', $attributes, // @codingStandardsIgnoreLine esc_html( sprintf( /* translators: %s is the registered nav menu name */ __( 'Please assign a menu to the %s menu location', 'go' ), $registered_nav_menus[ $menu_slug ] ) ) ); } /** * Filter the arguments used to display a navigation menu to add our own fallback callback. * * @param array $args Array of wp_nav_menu() arguments. */ function wp_nav_register_fallback( $args ) { $args['fallback_cb'] = __NAMESPACE__ . '\\wp_nav_fallback'; return $args; } /** * Tweaks the default customizer controls. * * @param \WP_Customize_Manager $wp_customize The customize manager object. * * @return void */ function default_controls( \WP_Customize_Manager $wp_customize ) { $wp_customize->get_setting( 'blogname' )->transport = 'postMessage'; $wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage'; $wp_customize->get_setting( 'custom_logo' )->transport = 'postMessage'; if ( isset( $wp_customize->selective_refresh ) ) { $wp_customize->selective_refresh->add_partial( 'blogname', array( 'selector' => '.header__titles', 'render_callback' => '\\Go\\site_branding', ) ); $wp_customize->selective_refresh->add_partial( 'blogdescription', array( 'selector' => '.header__titles', 'render_callback' => '\\Go\\site_branding', ) ); $wp_customize->selective_refresh->add_partial( 'custom_logo', array( 'selector' => '.header__titles', 'render_callback' => '\\Go\\site_branding', ) ); } $wp_customize->remove_section( 'background_image' ); } /** * Enqueues the preview js for the customizer. * * @return void */ function customize_preview_init() { $suffix = SCRIPT_DEBUG ? '' : '.min'; wp_enqueue_script( 'go-customize-preview', get_theme_file_uri( "dist/js/admin/customize-preview{$suffix}.js" ), array( 'jquery', 'wp-autop' ), GO_VERSION, true ); wp_localize_script( 'go-customize-preview', 'GoPreviewData', array( 'design_styles' => \Go\Core\get_available_design_styles(), 'selectedDesignStyle' => get_theme_mod( 'design_style', \Go\Core\get_default_design_style() ), 'socialIcons' => array_keys( \Go\Core\get_available_social_icons() ), ) ); } /** * Enqueues the necessary controls assets * * @return void */ function enqueue_controls_assets() { $suffix = SCRIPT_DEBUG ? '' : '.min'; $rtl = ! is_rtl() ? '' : '-rtl'; wp_enqueue_script( 'go-customize-controls', get_theme_file_uri( "dist/js/admin/customize-controls{$suffix}.js" ), array( 'jquery', 'wp-color-picker' ), GO_VERSION, true ); $color_scheme = str_replace( get_theme_mod( 'design_style' ) . '-', '', get_theme_mod( 'color_scheme', \Go\Core\get_default_color_scheme() ) ); $available_color_schemes = \Go\Core\get_available_color_schemes(); $color_scheme_colors = array(); if ( $color_scheme && ! empty( $available_color_schemes[ $color_scheme ] ) ) { if ( ! empty( $available_color_schemes[ $color_scheme ]['label'] ) ) { unset( $available_color_schemes[ $color_scheme ]['label'] ); } $color_scheme_colors = $available_color_schemes[ $color_scheme ]; } wp_localize_script( 'go-customize-controls', 'goCustomizerControls', array( 'availableDesignStyles' => \Go\Core\get_available_design_styles(), 'activeColorScheme' => array_values( $color_scheme_colors ), ) ); wp_enqueue_style( 'go-customize-style', get_theme_file_uri( "dist/css/admin/style-customize{$rtl}{$suffix}.css" ), array(), GO_VERSION ); } /** * Returns all available color schemes for all design styles * in an array for use in the Customizer control. * * @return array */ function get_color_schemes_as_choices() { $design_styles = \Go\Core\get_available_design_styles(); $color_schemes = array(); array_walk( $design_styles, function ( $style_data, $design_style ) use ( &$color_schemes ) { array_walk( $style_data['color_schemes'], function ( $data, $name ) use ( $design_style, &$color_schemes ) { $color_schemes[ "{$design_style}-{$name}" ] = $data; } ); } ); return $color_schemes; } /** * Register the Site Title and Tagline controls. * * @param \WP_Customize_Manager $wp_customize The customize manager object. * * @return void */ function register_site_title_controls( \WP_Customize_Manager $wp_customize ) { $wp_customize->get_control( 'blogdescription' )->priority = 11; $wp_customize->add_setting( 'hide_site_title', array( 'default' => false, 'transport' => 'refresh', 'sanitize_callback' => 'absint', ) ); $wp_customize->add_control( 'hide_site_title_checkbox', array( 'label' => esc_html__( 'Hide Site Title', 'go' ), 'description' => esc_html__( 'Prevent the site title from appearing in the header area.', 'go' ), 'section' => 'title_tagline', 'settings' => 'hide_site_title', 'priority' => 10, 'type' => 'checkbox', ) ); $wp_customize->add_setting( 'hide_site_tagline', array( 'default' => false, 'transport' => 'refresh', 'sanitize_callback' => 'absint', ) ); $wp_customize->add_control( 'hide_site_tagline_checkbox', array( 'label' => esc_html__( 'Hide Tagline', 'go' ), 'description' => esc_html__( 'Prevent the site tagline from appearing in the header area.', 'go' ), 'section' => 'title_tagline', 'settings' => 'hide_site_tagline', 'priority' => 12, 'type' => 'checkbox', ) ); } /** * Register the Logo Controls within Customize. * * @param \WP_Customize_Manager $wp_customize The customize manager object. * * @return void */ function register_logo_controls( \WP_Customize_Manager $wp_customize ) { $wp_customize->add_setting( 'logo_width', array( 'default' => 100, 'transport' => 'postMessage', 'sanitize_callback' => 'absint', ) ); $wp_customize->add_control( new Range_Control( $wp_customize, 'logo_width', array( 'default' => 100, 'type' => 'go_range_control', 'label' => esc_html__( 'Width', 'go' ), 'description' => 'px', 'section' => 'title_tagline', 'priority' => 8, 'input_attrs' => array( 'min' => 40, 'max' => 300, 'step' => 2, ), ) ) ); $wp_customize->add_setting( 'logo_width_mobile', array( 'default' => 100, 'transport' => 'postMessage', 'sanitize_callback' => 'absint', ) ); $wp_customize->add_control( new Range_Control( $wp_customize, 'logo_width_mobile', array( 'default' => 100, 'type' => 'go_range_control', 'label' => esc_html__( 'Mobile Width', 'go' ), 'description' => 'px', 'section' => 'title_tagline', 'priority' => 9, 'input_attrs' => array( 'min' => 40, 'max' => 200, 'step' => 2, ), ) ) ); } /** * Register the Global Controls within Customize. * * @param \WP_Customize_Manager $wp_customize The customize manager object. * * @return void */ function register_global_controls( \WP_Customize_Manager $wp_customize ) { $wp_customize->add_section( 'go_site_settings', array( 'title' => esc_html__( 'Site Settings', 'go' ), 'priority' => 100, ) ); $wp_customize->add_setting( 'page_titles', array( 'default' => true, 'transport' => 'postMessage', 'sanitize_callback' => 'absint', ) ); $wp_customize->add_control( 'show_page_title_checkbox', array( 'label' => esc_html__( 'Page Titles', 'go' ), 'description' => esc_html__( 'Display page titles on individual pages that are not individually opted-out.', 'go' ), 'section' => 'go_site_settings', 'settings' => 'page_titles', 'type' => 'checkbox', ) ); $wp_customize->add_setting( 'blog_excerpt', array( 'default' => false, 'sanitize_callback' => 'absint', ) ); $wp_customize->add_control( 'blog_excerpt_checkbox', array( 'label' => esc_html__( 'Blog Excerpt', 'go' ), 'description' => esc_html__( 'Use post excerpts on the blog page.', 'go' ), 'section' => 'go_site_settings', 'settings' => 'blog_excerpt', 'type' => 'checkbox', ) ); $wp_customize->add_setting( 'copyright', array( 'default' => \Go\Core\get_default_copyright(), 'transport' => 'postMessage', 'sanitize_callback' => __NAMESPACE__ . '\\copyright_kses_html', ) ); $wp_customize->add_control( 'copyright_control', array( 'label' => esc_html__( 'Copyright Text', 'go' ), 'section' => 'go_site_settings', 'settings' => 'copyright', 'type' => 'text', ) ); } /** * Callback to retrieve the copyright kses HTML * * @param string $input Input value. * @return string Filtered $input value. */ function copyright_kses_html( $input ) { return wp_kses( $input, \Go\get_copyright_kses_html() ); } /** * Register the Global Controls within Customize. * * @param \WP_Customize_Manager $wp_customize The customize manager object. * * @return void */ function register_color_controls( \WP_Customize_Manager $wp_customize ) { $wp_customize->add_setting( 'design_style', array( 'default' => \Go\Core\get_default_design_style(), 'transport' => 'postMessage', 'sanitize_callback' => __NAMESPACE__ . '\\sanitize_radio', ) ); $wp_customize->add_control( 'design_style_control', array( 'label' => esc_html__( 'Design Style', 'go' ), 'description' => esc_html__( 'Choose a style, select a color scheme and customize colors to personalize your site.', 'go' ), 'section' => 'colors', 'settings' => 'design_style', 'type' => 'radio', 'choices' => wp_list_pluck( \Go\Core\get_available_design_styles(), 'label' ), 'priority' => 1, ) ); $wp_customize->add_setting( 'color_scheme', array( 'transport' => 'postMessage', 'default' => \Go\Core\get_default_color_scheme(), 'sanitize_callback' => __NAMESPACE__ . '\\sanitize_radio', ) ); $wp_customize->add_control( new Switcher_Control( $wp_customize, 'color_scheme_control', array( 'label' => esc_html__( 'Color scheme', 'go' ), 'section' => 'colors', 'settings' => 'color_scheme', 'choices' => get_color_schemes_as_choices(), 'switcher_type' => 'color-scheme', 'priority' => 1, ) ) ); $wp_customize->add_setting( 'primary_color', array( 'transport' => 'postMessage', 'default' => \Go\get_default_palette_color( 'primary' ), 'sanitize_callback' => 'sanitize_hex_color', ) ); $wp_customize->add_control( new \WP_Customize_Color_Control( $wp_customize, 'primary_color_control', array( 'label' => esc_html__( 'Primary', 'go' ), 'section' => 'colors', 'settings' => 'primary_color', 'priority' => 1, ) ) ); $wp_customize->add_setting( 'secondary_color', array( 'transport' => 'postMessage', 'default' => \Go\get_default_palette_color( 'secondary' ), 'sanitize_callback' => 'sanitize_hex_color', ) ); $wp_customize->add_control( new \WP_Customize_Color_Control( $wp_customize, 'secondary_color_control', array( 'label' => esc_html__( 'Secondary', 'go' ), 'section' => 'colors', 'settings' => 'secondary_color', 'priority' => 1, ) ) ); $wp_customize->add_setting( 'tertiary_color', array( 'transport' => 'postMessage', 'default' => \Go\get_default_palette_color( 'tertiary' ), 'sanitize_callback' => 'sanitize_hex_color', ) ); $wp_customize->add_control( new \WP_Customize_Color_Control( $wp_customize, 'tertiary_color_control', array( 'label' => esc_html__( 'Tertiary', 'go' ), 'section' => 'colors', 'settings' => 'tertiary_color', 'priority' => 1, ) ) ); // Header colors. $wp_customize->add_setting( 'title_header_colors', array( 'sanitize_callback' => 'esc_html', ) ); $wp_customize->add_control( new Title_Control( $wp_customize, 'title_header_colors', array( 'type' => 'go_title', 'label' => esc_html__( 'Header Colors', 'go' ), 'description' => __( 'Customize colors within the site header.', 'go' ), 'section' => 'colors', ) ) ); $wp_customize->add_setting( 'header_background_color', array( 'transport' => 'postMessage', 'sanitize_callback' => 'sanitize_hex_color', 'default' => \Go\get_default_palette_color( 'header_background' ), ) ); $wp_customize->add_control( new \WP_Customize_Color_Control( $wp_customize, 'header_background_color', array( 'label' => esc_html__( 'Background', 'go' ), 'section' => 'colors', 'settings' => 'header_background_color', ) ) ); $wp_customize->add_setting( 'header_text_color', array( 'transport' => 'postMessage', 'sanitize_callback' => 'sanitize_hex_color', ) ); $wp_customize->add_control( new \WP_Customize_Color_Control( $wp_customize, 'header_text_color', array( 'label' => esc_html__( 'Foreground', 'go' ), 'section' => 'colors', 'settings' => 'header_text_color', ) ) ); // Footer colors. $wp_customize->add_setting( 'title_footer_colors', array( 'sanitize_callback' => 'esc_html', ) ); $wp_customize->add_control( new Title_Control( $wp_customize, 'title_footer_colors', array( 'type' => 'go_title', 'label' => esc_html__( 'Footer Colors', 'go' ), 'description' => __( 'Customize colors within the site footer.', 'go' ), 'section' => 'colors', ) ) ); $wp_customize->add_setting( 'footer_background_color', array( 'transport' => 'postMessage', 'sanitize_callback' => 'sanitize_hex_color', 'default' => \Go\get_default_palette_color( 'footer_background' ), ) ); $wp_customize->add_control( new \WP_Customize_Color_Control( $wp_customize, 'footer_background_color', array( 'label' => esc_html__( 'Background', 'go' ), 'section' => 'colors', 'settings' => 'footer_background_color', ) ) ); $wp_customize->add_setting( 'footer_text_color', array( 'transport' => 'postMessage', 'sanitize_callback' => 'sanitize_hex_color', ) ); $wp_customize->add_control( new \WP_Customize_Color_Control( $wp_customize, 'footer_text_color', array( 'label' => esc_html__( 'Foreground', 'go' ), 'section' => 'colors', 'settings' => 'footer_text_color', ) ) ); $wp_customize->add_setting( 'footer_heading_color', array( 'transport' => 'postMessage', 'sanitize_callback' => 'sanitize_hex_color', ) ); $wp_customize->add_control( new \WP_Customize_Color_Control( $wp_customize, 'footer_heading_color', array( 'label' => esc_html__( 'Heading', 'go' ), 'section' => 'colors', 'settings' => 'footer_heading_color', ) ) ); $wp_customize->add_setting( 'social_icon_color', array( 'transport' => 'postMessage', 'sanitize_callback' => 'sanitize_hex_color', ) ); $wp_customize->add_control( new \WP_Customize_Color_Control( $wp_customize, 'social_icon_color', array( 'label' => esc_html__( 'Social Icon', 'go' ), 'section' => 'colors', 'settings' => 'social_icon_color', ) ) ); // Footer colors. $wp_customize->add_setting( 'title_site_styles', array( 'sanitize_callback' => 'esc_html', ) ); $wp_customize->add_control( new Title_Control( $wp_customize, 'title_site_styles', array( 'type' => 'go_title', 'label' => esc_html__( 'Additional Design Controls', 'go' ), 'description' => __( 'Customize additional design settings.', 'go' ), 'section' => 'colors', ) ) ); $wp_customize->add_setting( 'viewport_basis', array( 'default' => \Go\Core\get_default_viewport_basis(), 'transport' => 'postMessage', 'sanitize_callback' => 'absint', ) ); $wp_customize->add_control( 'viewport_basis', array( 'default' => \Go\Core\get_default_viewport_basis(), 'type' => 'range', 'label' => esc_html__( 'Site Spacing', 'go' ), 'section' => 'colors', 'input_attrs' => array( 'min' => 500, 'max' => 2250, 'step' => 1, ), ) ); } /** * Register the Header Controls within Customize. * * @param \WP_Customize_Manager $wp_customize The customize manager object. * * @return void */ function register_header_controls( \WP_Customize_Manager $wp_customize ) { $wp_customize->add_section( 'go_header_settings', array( 'title' => esc_html__( 'Header', 'go' ), 'priority' => 70, ) ); $wp_customize->add_setting( 'header_variation', array( 'default' => \Go\Core\get_default_header_variation(), 'transport' => 'refresh', 'sanitize_callback' => __NAMESPACE__ . '\\sanitize_radio', ) ); $wp_customize->add_control( new Switcher_Control( $wp_customize, 'header_variation_control', array( 'label' => esc_html__( 'Header', 'go' ), 'description' => esc_html__( 'Choose a header for every page on your site, then style it with the selectors below.', 'go' ), 'section' => 'go_header_settings', 'settings' => 'header_variation', 'choices' => \Go\Core\get_available_header_variations(), ) ) ); // Alternate color control. $wp_customize->add_control( new \WP_Customize_Color_Control( $wp_customize, 'header_background_color_control_alt', array( 'label' => esc_html__( 'Background', 'go' ), 'section' => 'go_header_settings', 'settings' => 'header_background_color', ) ) ); // Alternate color control. $wp_customize->add_control( new \WP_Customize_Color_Control( $wp_customize, 'header_text_color_control_alt', array( 'label' => esc_html__( 'Foreground', 'go' ), 'section' => 'go_header_settings', 'settings' => 'header_text_color', ) ) ); $wp_customize->add_setting( 'sticky_header', array( 'default' => false, 'transport' => 'refresh', 'sanitize_callback' => 'absint', ) ); $wp_customize->add_control( 'sticky_header_checkbox', array( 'label' => esc_html__( 'Sticky Header', 'go' ), 'description' => esc_html__( 'Set the header to sticky, so that it follows as users scroll.', 'go' ), 'section' => 'go_header_settings', 'settings' => 'sticky_header', 'type' => 'checkbox', ) ); $wp_customize->add_setting( 'remove_search', array( 'default' => false, 'transport' => 'refresh', 'sanitize_callback' => 'absint', ) ); $wp_customize->add_control( 'remove_search_checkbox', array( 'label' => esc_html__( 'Remove Search', 'go' ), 'description' => esc_html__( 'Remove the search icon from the header.', 'go' ), 'section' => 'go_header_settings', 'settings' => 'remove_search', 'type' => 'checkbox', ) ); } /** * Register the Footer Controls within Customize. * * @param \WP_Customize_Manager $wp_customize The customize manager object. * * @return void */ function register_footer_controls( \WP_Customize_Manager $wp_customize ) { $wp_customize->add_section( 'go_footer_settings', array( 'title' => esc_html__( 'Footer', 'go' ), 'priority' => 90, ) ); $wp_customize->add_setting( 'footer_variation', array( 'default' => \Go\Core\get_default_footer_variation(), 'transport' => 'postMessage', 'sanitize_callback' => __NAMESPACE__ . '\\sanitize_radio', ) ); $wp_customize->add_control( new Switcher_Control( $wp_customize, 'footer_variation_control', array( 'label' => esc_html__( 'Footer', 'go' ), 'description' => esc_html__( 'Choose a footer for every page on your site, then style it with the selectors below.', 'go' ), 'section' => 'go_footer_settings', 'settings' => 'footer_variation', 'choices' => \Go\Core\get_available_footer_variations(), ) ) ); // Alternate color control. $wp_customize->add_control( new \WP_Customize_Color_Control( $wp_customize, 'footer_background_color_control_alt', array( 'label' => esc_html__( 'Background', 'go' ), 'section' => 'go_footer_settings', 'settings' => 'footer_background_color', ) ) ); // Alternate color control. $wp_customize->add_control( new \WP_Customize_Color_Control( $wp_customize, 'footer_text_color_alt', array( 'label' => esc_html__( 'Foreground', 'go' ), 'section' => 'go_footer_settings', 'settings' => 'footer_text_color', ) ) ); // Alternate color control. $wp_customize->add_control( new \WP_Customize_Color_Control( $wp_customize, 'footer_heading_color_alt', array( 'label' => esc_html__( 'Heading', 'go' ), 'section' => 'go_footer_settings', 'settings' => 'footer_heading_color', ) ) ); } /** * Register the Logo Controls within Customize. * * @param \WP_Customize_Manager $wp_customize The customize manager object. * * @return void */ function register_social_controls( \WP_Customize_Manager $wp_customize ) { $wp_customize->add_section( 'go_social_media', array( 'title' => esc_html__( 'Social', 'go' ), 'description' => esc_html__( 'Add social media account links to apply social icons on the site footer.', 'go' ), 'priority' => 90, ) ); $social_icons = \Go\Core\get_available_social_icons(); foreach ( $social_icons as $key => $social_icon ) { $wp_customize->add_setting( sprintf( 'social_icon_%s', $key ), array( 'transport' => 'postMessage', 'sanitize_callback' => 'esc_url_raw', ) ); $wp_customize->add_control( sprintf( 'social_icon_%s_control', $key ), array( 'label' => $social_icon['label'], 'section' => 'go_social_media', 'settings' => sprintf( 'social_icon_%s', $key ), 'type' => 'url', 'input_attrs' => array( 'placeholder' => esc_url( $social_icon['placeholder'] ), ), ) ); } // Alternate color control. $wp_customize->add_control( new \WP_Customize_Color_Control( $wp_customize, 'social_icon_color_alt', array( 'label' => esc_html__( 'Social icon', 'go' ), 'section' => 'go_social_media', 'settings' => 'social_icon_color', ) ) ); } /** * Register the menu within Customize. * * @param \WP_Customize_Manager $wp_customize The customize manager object. * * @return void */ function register_menu_controls( \WP_Customize_Manager $wp_customize ) { $wp_customize->add_section( 'go_menu_behavior', array( 'title' => __( 'Menu Behavior', 'go' ), 'panel' => 'nav_menus', ) ); $wp_customize->add_setting( 'open_menu_on_hover', array( 'capability' => 'edit_theme_options', 'default' => true, 'sanitize_callback' => 'absint', ) ); $wp_customize->add_control( 'open_menu_on_hover', array( 'label' => __( 'Show sub menus on hover.', 'go' ), 'description' => esc_html__( 'Show sub menu items on hover.', 'go' ), 'section' => 'go_menu_behavior', 'settings' => 'open_menu_on_hover', 'type' => 'checkbox', ) ); } /** * Rename customizer panels. * * @param \WP_Customize_Manager $wp_customize The customize manager object. * * @return void */ function rename_panels( \WP_Customize_Manager $wp_customize ) { $wp_customize->get_section( 'colors' )->title = __( 'Site Design', 'go' ); } /** * Sanitize a radio field setting from the customizer. * * @param string $value The radio field value being saved. * @param string $setting The name of the setting being saved. * * @return string */ function sanitize_radio( $value, $setting ) { $input = sanitize_title( $value ); $choices = $setting->manager->get_control( $setting->id . '_control' )->choices; return array_key_exists( $input, $choices ) ? $input : $setting->default; } /** * Generates the inline CSS from the Customizer settings * * @return void */ function inline_css() { // Color palette. $primary_color = get_palette_color( 'primary', 'HSL' ); $secondary_color = get_palette_color( 'secondary', 'HSL' ); $tertiary_color = get_palette_color( 'tertiary', 'HSL' ); $background_color = get_palette_color( 'background', 'HSL' ); // Customizer colors. $header_background = get_palette_color( 'header_background', 'HSL' ); $header_text_color = hex_to_hsl( get_theme_mod( 'header_text_color', false ), true ); $footer_text_color = hex_to_hsl( get_theme_mod( 'footer_text_color', false ), true ); $footer_heading_color = hex_to_hsl( get_theme_mod( 'footer_heading_color', false ), true ); $footer_background = get_palette_color( 'footer_background', 'HSL' ); $social_icon_color = hex_to_hsl( get_theme_mod( 'social_icon_color', false ), true ); // Site logo width. $logo_width = get_theme_mod( 'logo_width', '100' ); $logo_width_mobile = get_theme_mod( 'logo_width_mobile', '100' ); // Spacing. $viewport_basis = get_theme_mod( 'viewport_basis', '1100' ); // Fonts. $fonts = get_theme_mod( 'fonts', array() ); if ( ! empty( $fonts ) ) { list( $font_headings, $font_body ) = array_keys( $fonts ); $font_headings = str_replace( '_heading', '', $font_headings ); $font_body = str_replace( '_body', '', $font_body ); list( $font_heading_weights, $font_body_weights ) = array_values( $fonts ); } $font_size = get_theme_mod( 'font_size' ); $type_ratio = get_theme_mod( 'type_ratio' ); ?> <style> :root { --go--color--white: hsl(0, 0%, 100%); <?php if ( $primary_color ) : ?> --go--color--primary: hsl(<?php echo esc_attr( $primary_color[0] ) . ', ' . esc_attr( $primary_color[1] ) . '%, ' . esc_attr( $primary_color[2] ) . '%'; ?>); <?php endif; ?> <?php if ( $secondary_color ) : ?> --go--color--secondary: hsl(<?php echo esc_attr( $secondary_color[0] ) . ', ' . esc_attr( $secondary_color[1] ) . '%, ' . esc_attr( $secondary_color[2] ) . '%'; ?>); <?php endif; ?> <?php if ( $tertiary_color ) : ?> --go--color--tertiary: hsl(<?php echo esc_attr( $tertiary_color[0] ) . ', ' . esc_attr( $tertiary_color[1] ) . '%, ' . esc_attr( $tertiary_color[2] ) . '%'; ?>); <?php endif; ?> <?php if ( $background_color ) : ?> --go--color--background: hsl(<?php echo esc_attr( $background_color[0] ) . ', ' . esc_attr( $background_color[1] ) . '%, ' . esc_attr( $background_color[2] ) . '%'; ?>); <?php endif; ?> <?php if ( $header_background ) : ?> --go-header--color--background: hsl(<?php echo esc_attr( $header_background[0] ) . ', ' . esc_attr( $header_background[1] ) . '%, ' . esc_attr( $header_background[2] ) . '%'; ?>); <?php endif; ?> <?php if ( $header_text_color ) : ?> --go-site-title--color--text: hsl(<?php echo esc_attr( $header_text_color ); ?>); --go-site-description--color--text: hsl(<?php echo esc_attr( $header_text_color ); ?>); --go-navigation--color--text: hsl(<?php echo esc_attr( $header_text_color ); ?>); --go-search-toggle--color--text: hsl(<?php echo esc_attr( $header_text_color ); ?>); --go-search-button--color--background: hsl(<?php echo esc_attr( $header_text_color ); ?>); <?php endif; ?> <?php if ( $footer_background ) : ?> --go-footer--color--background: hsl(<?php echo esc_attr( $footer_background[0] ) . ', ' . esc_attr( $footer_background[1] ) . '%, ' . esc_attr( $footer_background[2] ) . '%'; ?>); <?php endif; ?> <?php if ( $footer_heading_color ) : ?> --go-footer-heading--color--text: hsl(<?php echo esc_attr( $footer_heading_color ); ?>); <?php endif; ?> <?php if ( $footer_text_color ) : ?> --go-footer--color--text: hsl(<?php echo esc_attr( $footer_text_color ); ?>); --go-footer-navigation--color--text: hsl(<?php echo esc_attr( $footer_text_color ); ?>); <?php endif; ?> <?php if ( $social_icon_color ) : ?> --go-social--color--text: hsl(<?php echo esc_attr( $social_icon_color ); ?>); <?php endif; ?> <?php if ( $logo_width ) : ?> --go-logo--max-width: <?php echo esc_attr( $logo_width ); ?>px; <?php endif; ?> <?php if ( $logo_width_mobile ) : ?> --go-logo-mobile--max-width: <?php echo esc_attr( $logo_width_mobile ); ?>px; <?php endif; ?> <?php if ( $viewport_basis ) : ?> --go--viewport-basis: <?php echo esc_attr( $viewport_basis ); ?>; <?php endif; ?> <?php if ( isset( $font_headings, $font_body ) ) : ?> --go-heading--font-family: <?php echo esc_attr( $font_headings ); ?>; --go--font-family: <?php echo esc_attr( $font_body ); ?>; <?php endif; ?> <?php if ( $font_size ) : ?> --go--font-size: <?php echo esc_attr( $font_size ); ?>; <?php endif; ?> <?php if ( $type_ratio ) : ?> --go--type-ratio: <?php echo esc_attr( $type_ratio ); ?>; <?php endif; ?> <?php if ( ! empty( $font_heading_weights ) ) : ?> --go-heading--font-weight: <?php echo esc_attr( $font_heading_weights[0] ); ?>; <?php endif; ?> <?php if ( ! empty( $font_body_weights ) ) : ?> --go--font-weight: <?php echo esc_attr( $font_body_weights[0] ); ?>; <?php endif; ?> } .has-primary-to-secondary-gradient-background { background: -webkit-linear-gradient(135deg, var(--go--color--primary) 0%, var(--go--color--secondary) 100%); background: -o-linear-gradient(135deg, var(--go--color--primary) 0%, var(--go--color--secondary) 100%); background: linear-gradient(135deg, var(--go--color--primary) 0%, var(--go--color--secondary) 100%); } .has-primary-to-tertiary-gradient-background { background: -webkit-linear-gradient(135deg, var(--go--color--primary) 0%, var(--go--color--tertiary) 100%); background: -o-linear-gradient(135deg, var(--go--color--primary) 0%, var(--go--color--tertiary) 100%); background: linear-gradient(135deg, var(--go--color--primary) 0%, var(--go--color--tertiary) 100%); } .has-primary-to-background-gradient-background { background: -webkit-linear-gradient(135deg, var(--go--color--primary) 0%, var(--go--color--background) 100%); background: -o-linear-gradient(135deg, var(--go--color--primary) 0%, var(--go--color--background) 100%); background: linear-gradient(135deg, var(--go--color--primary) 0%, var(--go--color--background) 100%); } .has-secondary-to-tertiary-gradient-background { background: -webkit-linear-gradient(135deg, var(--go--color--secondary) 0%, var(--go--color--tertiary) 100%); background: -o-linear-gradient(135deg, var(--go--color--secondary) 0%, var(--go--color--tertiary) 100%); background: linear-gradient(135deg, var(--go--color--secondary) 0%, var(--go--color--tertiary) 100%); } </style> <?php }
Save
Cancel