/** * Build the HTTP request URL for Google Fonts. * * @since 1.0.0. * * @return string The URL for including Google Fonts. */ function customizer_library_get_google_font_uri($fonts) { // De-dupe the fonts $fonts = array_unique($fonts); $allowed_fonts = customizer_library_get_google_fonts(); $family = array(); // Validate each font and convert to URL format foreach ($fonts as $font) { $font = trim($font); // Verify that the font exists if (array_key_exists($font, $allowed_fonts)) { // Build the family name and variant string (e.g., "Open+Sans:regular,italic,700") $family[] = urlencode($font . ':' . join(',', customizer_library_choose_google_font_variants($font, $allowed_fonts[$font]['variants']))); } } // Convert from array to string if (empty($family)) { return ''; } else { $request = '//fonts.googleapis.com/css?family=' . implode('%7C', $family); } // Load the font subset $subset = get_theme_mod('font-subset', customizer_library_get_default('font-subset')); if ('all' === $subset) { $subsets_available = customizer_library_get_google_font_subsets(); // Remove the all set unset($subsets_available['all']); // Build the array $subsets = array_keys($subsets_available); } else { $subsets = array('latin', $subset); } // Append the subset string if (!empty($subsets)) { $request .= urlencode('&subset=' . join(',', $subsets)); } return esc_url($request); }
<?php //----------------------TOPBAR SECTION---------------------------------- //============================HEADER - LOGO SECTION================================= // Site Title Font Family $wp_customize->add_setting('optimizer[logo_font_id][font-family]', array('type' => 'option', 'default' => 'Open Sans', 'sanitize_callback' => 'esc_attr', 'transport' => 'postMessage')); $wp_customize->add_control('logo_font_family', array('type' => 'select', 'label' => __('Family', 'optimizer'), 'section' => 'headlogo_section', 'settings' => 'optimizer[logo_font_id][font-family]', 'choices' => customizer_library_get_font_choices())); // Site Title Font Subsets $wp_customize->add_setting('optimizer[logo_font_id][subsets]', array('type' => 'option', 'default' => 'latin', 'sanitize_callback' => 'esc_attr', 'transport' => 'postMessage')); $wp_customize->add_control('logo_font_subsets', array('type' => 'select', 'label' => __('Subsets', 'optimizer'), 'section' => 'headlogo_section', 'settings' => 'optimizer[logo_font_id][subsets]', 'choices' => customizer_library_get_google_font_subsets())); //Site Title Font Size $wp_customize->add_setting('optimizer[logo_font_id][font-size]', array('type' => 'option', 'default' => '36px', 'sanitize_callback' => 'sanitize_text_field', 'transport' => 'postMessage')); $wp_customize->add_control('logo_font_size', array('type' => 'text', 'label' => __('Site Title Font Size', 'optimizer'), 'section' => 'headlogo_section', 'settings' => 'optimizer[logo_font_id][font-size]', 'input_attrs' => array('class' => 'mini_control'))); //Site Title Text Color $wp_customize->add_setting('optimizer[logo_color_id]', array('type' => 'option', 'default' => '#555555', 'sanitize_callback' => 'sanitize_hex_color', 'transport' => 'postMessage')); $wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'logo_color_id', array('label' => __('Site Title Color', 'optimizer'), 'section' => 'headlogo_section', 'settings' => 'optimizer[logo_color_id]'))); //LOGO UPLOAD FIELD $wp_customize->add_setting('optimizer[logo_image_id][url]', array('type' => 'option', 'default' => '', 'sanitize_callback' => 'esc_url_raw')); $wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'logo_image_id', array('label' => __('Logo Image *', 'optimizer'), 'section' => 'headlogo_section', 'settings' => 'optimizer[logo_image_id][url]'))); //============================HEADER - MENU SECTION================================= //MENU TEXT COLOR $wp_customize->add_setting('optimizer[menutxt_color_id]', array('type' => 'option', 'default' => '#888888', 'sanitize_callback' => 'sanitize_hex_color', 'transport' => 'postMessage')); $wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'menutxt_color_id', array('label' => __('Menu Text Color', 'optimizer'), 'section' => 'headmenu_section', 'settings' => 'optimizer[menutxt_color_id]'))); //MENU HOVER TEXT COLOR $wp_customize->add_setting('optimizer[menutxt_color_hover]', array('type' => 'option', 'default' => '#ffffff', 'sanitize_callback' => 'sanitize_hex_color', 'transport' => 'postMessage')); $wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'menutxt_color_hover', array('label' => __('Menu Hover Text Color', 'optimizer'), 'section' => 'headmenu_section', 'settings' => 'optimizer[menutxt_color_hover]'))); //MENU ACTIVE TEXT COLOR $wp_customize->add_setting('optimizer[menutxt_color_active]', array('type' => 'option', 'default' => '#3590ea', 'sanitize_callback' => 'sanitize_hex_color', 'transport' => 'postMessage')); $wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'menutxt_color_active', array('label' => __('Menu Active Text Color', 'optimizer'), 'section' => 'headmenu_section', 'settings' => 'optimizer[menutxt_color_active]'))); //MENU TEXT SIZE $wp_customize->add_setting('optimizer[menu_size_id]', array('type' => 'option', 'default' => '14px', 'sanitize_callback' => 'sanitize_text_field', 'transport' => 'postMessage'));
//---------TYPOGRAPHY SETTINGS--------------------- // Site Content Font Family $wp_customize->add_setting('optimizer[content_font_id][font-family]', array('type' => 'option', 'default' => 'Open Sans', 'transport' => 'postMessage', 'sanitize_callback' => 'esc_attr')); $wp_customize->add_control('content_font_family', array('type' => 'select', 'label' => __('Family', 'optimizer'), 'section' => 'basic_typography', 'settings' => 'optimizer[content_font_id][font-family]', 'choices' => customizer_library_get_font_choices())); // Site Content Font Subsets $wp_customize->add_setting('optimizer[content_font_id][subsets]', array('type' => 'option', 'default' => 'latin', 'sanitize_callback' => 'esc_attr', 'transport' => 'postMessage')); $wp_customize->add_control('content_font_subsets', array('type' => 'select', 'label' => __('Subsets', 'optimizer'), 'section' => 'basic_typography', 'settings' => 'optimizer[content_font_id][subsets]', 'choices' => customizer_library_get_google_font_subsets())); //Site Content Font Size $wp_customize->add_setting('optimizer[content_font_id][font-size]', array('type' => 'option', 'default' => '16px', 'sanitize_callback' => 'sanitize_text_field', 'transport' => 'postMessage')); $wp_customize->add_control('content_font_size', array('type' => 'text', 'label' => __('Font Size', 'optimizer'), 'section' => 'basic_typography', 'settings' => 'optimizer[content_font_id][font-size]', 'input_attrs' => array('class' => 'mini_control'))); // Post Titles, headings and Menu Font Family $wp_customize->add_setting('optimizer[ptitle_font_id][font-family]', array('type' => 'option', 'default' => 'Open Sans', 'sanitize_callback' => 'esc_attr', 'transport' => 'postMessage')); $wp_customize->add_control('ptitle_font_family', array('type' => 'select', 'label' => __('Family', 'optimizer'), 'section' => 'basic_typography', 'settings' => 'optimizer[ptitle_font_id][font-family]', 'choices' => customizer_library_get_font_choices())); // Post Titles, headings and Menu Font Subsets $wp_customize->add_setting('optimizer[ptitle_font_id][subsets]', array('type' => 'option', 'default' => 'latin', 'sanitize_callback' => 'esc_attr', 'transport' => 'postMessage')); $wp_customize->add_control('ptitle_font_subsets', array('type' => 'select', 'label' => __('Subsets', 'optimizer'), 'section' => 'basic_typography', 'settings' => 'optimizer[ptitle_font_id][subsets]', 'choices' => customizer_library_get_google_font_subsets())); //Turn Menu Text & All Headings to Uppercase $wp_customize->add_setting('optimizer[txt_upcase_id]', array('type' => 'option', 'default' => '1', 'sanitize_callback' => 'optimizer_sanitize_checkbox', 'transport' => 'postMessage')); $wp_customize->add_control(new Optimizer_Controls_Toggle_Control($wp_customize, 'txt_upcase_id', array('label' => __('Turn Menu Text & All Headings to Uppercase', 'optimizer'), 'section' => 'basic_typography', 'settings' => 'optimizer[txt_upcase_id]'))); //---------------LAYOUT CALLBACK-------------------// function optimizer_layout_callback($control) { $layout_setting = $control->manager->get_setting('optimizer[site_layout_id]')->value(); if ($layout_setting == 'site_boxed') { return true; } return false; } //---------------HEADER CALLBACK-------------------// function optimizer_transparent_header_callback($control) {