示例#1
0
 /**
  * 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 &amp; 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 &amp; 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)
{