get_setting( 'blogname' )->transport = 'postMessage';
$wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage';
$wp_customize->get_setting( 'header_textcolor' )->transport = 'postMessage';
//Extra titles
class Dublin_Titles extends WP_Customize_Control {
public $type = 'titles';
public $label = '';
public function render_content() {
?>
label ); ?>
add_section(
'dublin_general',
array(
'title' => __('General', 'dublin'),
'priority' => 9,
)
);
//Logo Upload
$wp_customize->add_setting(
'site_logo',
array(
'default-image' => '',
'sanitize_callback' => 'esc_url_raw',
)
);
$wp_customize->add_control(
new WP_Customize_Image_Control(
$wp_customize,
'site_logo',
array(
'label' => __( 'Upload your logo', 'dublin' ),
'type' => 'image',
'section' => 'dublin_general',
'settings' => 'site_logo',
'priority' => 9,
)
)
);
//Favicon Upload
$wp_customize->add_setting(
'site_favicon',
array(
'default-image' => '',
'sanitize_callback' => 'esc_url_raw',
)
);
$wp_customize->add_control(
new WP_Customize_Image_Control(
$wp_customize,
'site_favicon',
array(
'label' => __( 'Upload your favicon', 'dublin' ),
'type' => 'image',
'section' => 'dublin_general',
'settings' => 'site_favicon',
'priority' => 10,
)
)
);
//Sidebar widgets
$wp_customize->add_setting(
'sidebar_widgets',
array(
'sanitize_callback' => 'dublin_sanitize_checkbox',
'default' => 0,
)
);
$wp_customize->add_control(
'sidebar_widgets',
array(
'type' => 'checkbox',
'label' => __('Hide the sidebar widgets on screen widths below 1024px', 'dublin'),
'section' => 'dublin_general',
'priority' => 11,
)
);
//Footer widgets
$wp_customize->add_setting(
'footer_widgets',
array(
'sanitize_callback' => 'dublin_sanitize_checkbox',
'default' => 0,
)
);
$wp_customize->add_control(
'footer_widgets',
array(
'type' => 'checkbox',
'label' => __('Hide the footer widgets on screen widths below 1024px', 'dublin'),
'section' => 'dublin_general',
'priority' => 12,
)
);
//___Contact info___//
$wp_customize->add_section(
'dublin_top_contact',
array(
'title' => __('Top Contact info', 'dublin'),
'priority' => 11,
)
);
//Display
$wp_customize->add_setting(
'contact_display',
array(
'sanitize_callback' => 'dublin_sanitize_checkbox',
)
);
$wp_customize->add_control(
'contact_display',
array(
'type' => 'checkbox',
'label' => __('Check this box to display your contact info in the top bar.', 'dublin'),
'section' => 'dublin_top_contact',
'priority' => 10,
)
);
//Phone number
$wp_customize->add_setting(
'phone_number',
array(
'default' => '',
'sanitize_callback' => 'dublin_sanitize_text',
)
);
$wp_customize->add_control(
'phone_number',
array(
'label' => __( 'Phone number', 'dublin' ),
'section' => 'dublin_top_contact',
'type' => 'text',
'priority' => 11
)
);
//Email address
$wp_customize->add_setting(
'email_address',
array(
'default' => '',
'sanitize_callback' => 'dublin_sanitize_text',
)
);
$wp_customize->add_control(
'email_address',
array(
'label' => __( 'Email address', 'dublin' ),
'section' => 'dublin_top_contact',
'type' => 'text',
'priority' => 12
)
);
//Address
$wp_customize->add_setting(
'p_address',
array(
'default' => '',
'sanitize_callback' => 'dublin_sanitize_text',
)
);
$wp_customize->add_control(
'p_address',
array(
'label' => __( 'Address', 'dublin' ),
'section' => 'dublin_top_contact',
'type' => 'text',
'priority' => 13
)
);
//___Blog options___//
$wp_customize->add_section(
'blog_options',
array(
'title' => __('Blog options', 'dublin'),
'priority' => 12,
)
);
//Full content posts
$wp_customize->add_setting(
'full_content',
array(
'sanitize_callback' => 'dublin_sanitize_checkbox',
'default' => 0,
)
);
$wp_customize->add_control(
'full_content',
array(
'type' => 'checkbox',
'label' => __('Full content posts on index?', 'dublin'),
'section' => 'blog_options',
'priority' => 11,
)
);
//Excerpt
$wp_customize->add_setting(
'exc_lenght',
array(
'sanitize_callback' => 'absint',
'default' => '55',
)
);
$wp_customize->add_control( 'exc_lenght', array(
'type' => 'number',
'priority' => 12,
'section' => 'blog_options',
'label' => __('Excerpt lenght', 'dublin'),
'description' => __('Excerpt length. Default is 55 words', 'dublin'),
'input_attrs' => array(
'min' => 10,
'max' => 200,
'step' => 5,
'style' => 'padding: 15px;',
),
) );
//Index
$wp_customize->add_setting('dublin_options[titles]', array(
'type' => 'titles_control',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'dublin_no_sanitize',
)
);
$wp_customize->add_control( new Dublin_Titles( $wp_customize, 'index_meta', array(
'label' => __('Blog page', 'dublin'),
'section' => 'blog_options',
'settings' => 'dublin_options[titles]',
'priority' => 13
) )
);
//Hide date
$wp_customize->add_setting(
'dublin_date',
array(
'sanitize_callback' => 'dublin_sanitize_checkbox',
'default' => 0,
)
);
$wp_customize->add_control(
'dublin_date',
array(
'type' => 'checkbox',
'label' => __('Hide post date on index?', 'dublin'),
'section' => 'blog_options',
'priority' => 14,
)
);
//Hide categories
$wp_customize->add_setting(
'dublin_cats',
array(
'sanitize_callback' => 'dublin_sanitize_checkbox',
'default' => 0,
)
);
$wp_customize->add_control(
'dublin_cats',
array(
'type' => 'checkbox',
'label' => __('Hide post categories on index?', 'dublin'),
'section' => 'blog_options',
'priority' => 15,
)
);
//Singles
$wp_customize->add_setting('dublin_options[titles]', array(
'type' => 'titles_control',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'dublin_no_sanitize',
)
);
$wp_customize->add_control( new Dublin_Titles( $wp_customize, 'single_meta', array(
'label' => __('Single posts', 'dublin'),
'section' => 'blog_options',
'settings' => 'dublin_options[titles]',
'priority' => 16
) )
);
//Hide date
$wp_customize->add_setting(
'dublin_single_date',
array(
'sanitize_callback' => 'dublin_sanitize_checkbox',
'default' => 0,
)
);
$wp_customize->add_control(
'dublin_single_date',
array(
'type' => 'checkbox',
'label' => __('Hide post date & author on single posts?', 'dublin'),
'section' => 'blog_options',
'priority' => 17,
)
);
//Hide categories
$wp_customize->add_setting(
'dublin_single_cats',
array(
'sanitize_callback' => 'dublin_sanitize_checkbox',
'default' => 0,
)
);
$wp_customize->add_control(
'dublin_single_cats',
array(
'type' => 'checkbox',
'label' => __('Hide post categories on single posts?', 'dublin'),
'section' => 'blog_options',
'priority' => 18,
)
);
//Hide tags
$wp_customize->add_setting(
'dublin_single_tags',
array(
'sanitize_callback' => 'dublin_sanitize_checkbox',
'default' => 0,
)
);
$wp_customize->add_control(
'dublin_single_tags',
array(
'type' => 'checkbox',
'label' => __('Hide post tags on single posts?', 'dublin'),
'section' => 'blog_options',
'priority' => 19,
)
);
//___Colors___//
//Primary color
$wp_customize->add_setting(
'primary_color',
array(
'default' => '#3fb8af',
'sanitize_callback' => 'sanitize_hex_color',
'transport' => 'postMessage'
)
);
$wp_customize->add_control(
new WP_Customize_Color_Control(
$wp_customize,
'primary_color',
array(
'label' => __('Primary color', 'dublin'),
'section' => 'colors',
'settings' => 'primary_color',
'priority' => 12
)
)
);
//Header bg
$wp_customize->add_setting(
'header_bg_color',
array(
'default' => '#20272b',
'sanitize_callback' => 'sanitize_hex_color',
'transport' => 'postMessage'
)
);
$wp_customize->add_control(
new WP_Customize_Color_Control(
$wp_customize,
'header_bg_color',
array(
'label' => __('Header background color', 'dublin'),
'section' => 'colors',
'settings' => 'header_bg_color',
'priority' => 13
)
)
);
//Footer bg
$wp_customize->add_setting(
'footer_bg_color',
array(
'default' => '#20272b',
'sanitize_callback' => 'sanitize_hex_color',
'transport' => 'postMessage'
)
);
$wp_customize->add_control(
new WP_Customize_Color_Control(
$wp_customize,
'footer_bg_color',
array(
'label' => __('Footer widget area background color', 'dublin'),
'section' => 'colors',
'settings' => 'footer_bg_color',
'priority' => 14
)
)
);
//Footer credits bg
$wp_customize->add_setting(
'credits_bg_color',
array(
'default' => '#101314',
'sanitize_callback' => 'sanitize_hex_color',
'transport' => 'postMessage'
)
);
$wp_customize->add_control(
new WP_Customize_Color_Control(
$wp_customize,
'credits_bg_color',
array(
'label' => __('Footer credits area background color', 'dublin'),
'section' => 'colors',
'settings' => 'credits_bg_color',
'priority' => 15
)
)
);
//Site title
$wp_customize->add_setting(
'site_title_color',
array(
'default' => '#ffffff',
'sanitize_callback' => 'sanitize_hex_color',
'transport' => 'postMessage'
)
);
$wp_customize->add_control(
new WP_Customize_Color_Control(
$wp_customize,
'site_title_color',
array(
'label' => __('Site title', 'dublin'),
'section' => 'colors',
'settings' => 'site_title_color',
'priority' => 16
)
)
);
//Site description
$wp_customize->add_setting(
'site_desc_color',
array(
'default' => '#5e5e5e',
'sanitize_callback' => 'sanitize_hex_color',
'transport' => 'postMessage'
)
);
$wp_customize->add_control(
new WP_Customize_Color_Control(
$wp_customize,
'site_desc_color',
array(
'label' => __('Site description', 'dublin'),
'section' => 'colors',
'settings' => 'site_desc_color',
'priority' => 17
)
)
);
//Contact info
$wp_customize->add_setting(
'contact_color',
array(
'default' => '#ffffff',
'sanitize_callback' => 'sanitize_hex_color',
'transport' => 'postMessage'
)
);
$wp_customize->add_control(
new WP_Customize_Color_Control(
$wp_customize,
'contact_color',
array(
'label' => __('Top contact info (address, social etc.)', 'dublin'),
'section' => 'colors',
'settings' => 'contact_color',
'priority' => 18
)
)
);
//Entry title
$wp_customize->add_setting(
'entry_title_color',
array(
'default' => '#3c3c3c',
'sanitize_callback' => 'sanitize_hex_color',
'transport' => 'postMessage'
)
);
$wp_customize->add_control(
new WP_Customize_Color_Control(
$wp_customize,
'entry_title_color',
array(
'label' => __('Entry title', 'dublin'),
'section' => 'colors',
'settings' => 'entry_title_color',
'priority' => 19
)
)
);
//Body
$wp_customize->add_setting(
'body_text_color',
array(
'default' => '#3c3c3c',
'sanitize_callback' => 'sanitize_hex_color',
'transport' => 'postMessage'
)
);
$wp_customize->add_control(
new WP_Customize_Color_Control(
$wp_customize,
'body_text_color',
array(
'label' => __('Text', 'dublin'),
'section' => 'colors',
'settings' => 'body_text_color',
'priority' => 20
)
)
);
//___Fonts___//
$wp_customize->add_section(
'dublin_typography',
array(
'title' => __('Fonts', 'dublin' ),
'priority' => 15,
)
);
$font_choices =
array(
'Source Sans Pro:400,700,400italic,700italic' => 'Source Sans Pro',
'Droid Sans:400,700' => 'Droid Sans',
'Lato:400,700,400italic,700italic' => 'Lato',
'Arvo:400,700,400italic,700italic' => 'Arvo',
'Lora:400,700,400italic,700italic' => 'Lora',
'PT Sans:400,700,400italic,700italic' => 'PT Sans',
'PT+Sans+Narrow:400,700' => 'PT Sans Narrow',
'Arimo:400,700,400italic,700italic' => 'Arimo',
'Ubuntu:400,700,400italic,700italic' => 'Ubuntu',
'Bitter:400,700,400italic' => 'Bitter',
'Droid Serif:400,700,400italic,700italic' => 'Droid Serif',
'Open+Sans:400italic,700italic,400,700' => 'Open Sans',
'Roboto:400,400italic,700,700italic' => 'Roboto',
'Oswald:400,700' => 'Oswald',
'Open Sans Condensed:700,300italic,300' => 'Open Sans Condensed',
'Roboto Condensed:400italic,700italic,400,700' => 'Roboto Condensed',
'Raleway:400,700' => 'Raleway',
'Roboto Slab:400,700' => 'Roboto Slab',
'Yanone Kaffeesatz:400,700' => 'Yanone Kaffeesatz',
'Rokkitt:400' => 'Rokkitt',
);
$wp_customize->add_setting(
'headings_fonts',
array(
'sanitize_callback' => 'dublin_sanitize_fonts',
)
);
$wp_customize->add_control(
'headings_fonts',
array(
'type' => 'select',
'label' => __('Headings font (default: Oswald)', 'dublin'),
'section' => 'dublin_typography',
'choices' => $font_choices
)
);
$wp_customize->add_setting(
'body_fonts',
array(
'sanitize_callback' => 'dublin_sanitize_fonts',
)
);
$wp_customize->add_control(
'body_fonts',
array(
'type' => 'select',
'label' => __('Body font (default: Source Sans Pro)', 'dublin'),
'section' => 'dublin_typography',
'choices' => $font_choices
)
);
}
add_action( 'customize_register', 'dublin_customize_register' );
/**
* Sanitization
*/
//Checkboxes
function dublin_sanitize_checkbox( $input ) {
if ( $input == 1 ) {
return 1;
} else {
return '';
}
}
//Empty function that does nothing except stop Theme Check plugin from throwing errors on Dublin_Titles which does not require sanitization
function dublin_no_sanitize() {
}
//Fonts
function dublin_sanitize_fonts( $input ) {
$valid = array(
'Source Sans Pro:400,700,400italic,700italic' => 'Source Sans Pro',
'Droid Sans:400,700' => 'Droid Sans',
'Lato:400,700,400italic,700italic' => 'Lato',
'Arvo:400,700,400italic,700italic' => 'Arvo',
'Lora:400,700,400italic,700italic' => 'Lora',
'PT Sans:400,700,400italic,700italic' => 'PT Sans',
'PT+Sans+Narrow:400,700' => 'PT Sans Narrow',
'Arimo:400,700,400italic,700italic' => 'Arimo',
'Ubuntu:400,700,400italic,700italic' => 'Ubuntu',
'Bitter:400,700,400italic' => 'Bitter',
'Droid Serif:400,700,400italic,700italic' => 'Droid Serif',
'Open+Sans:400italic,700italic,400,700' => 'Open Sans',
'Roboto:400,400italic,700,700italic' => 'Roboto',
'Oswald:400,700' => 'Oswald',
'Open Sans Condensed:700,300italic,300' => 'Open Sans Condensed',
'Roboto Condensed:400italic,700italic,400,700' => 'Roboto Condensed',
'Raleway:400,700' => 'Raleway',
'Roboto Slab:400,700' => 'Roboto Slab',
'Yanone Kaffeesatz:400,700' => 'Yanone Kaffeesatz',
'Rokkitt:400' => 'Rokkitt',
);
if ( array_key_exists( $input, $valid ) ) {
return $input;
} else {
return '';
}
}
//Text
function dublin_sanitize_text( $input ) {
return wp_kses_post( force_balance_tags( $input ) );
}
/**
* Binds JS handlers to make Theme Customizer preview reload changes asynchronously.
*/
function dublin_customize_preview_js() {
wp_enqueue_script( 'dublin_customizer', get_template_directory_uri() . '/js/customizer.js', array( 'customize-preview' ), '', true );
}
add_action( 'customize_preview_init', 'dublin_customize_preview_js' );
function dublin_registers() {
wp_enqueue_script( 'dublin_customizer_script', get_template_directory_uri() . '/js/dublin_customizer.js', array("jquery"), '20120206', true );
wp_localize_script( 'dublin_customizer_script', 'dublinCustomizerObject', array(
'github' => __('GitHub','dublin'),
'review' => __('Leave a Review', 'dublin'),
'documentation' => __('Documentation', 'dublin')
) );
}
add_action( 'customize_controls_enqueue_scripts', 'dublin_registers' );