add_setting( 'biru_option[logo]', array( 'type' => 'option', 'sanitize_callback' => 'biru_sanitize_image', )); $wp_customize->add_setting( 'biru_option[display]', array( 'default' => 'site_title', 'type' => 'option', 'sanitize_callback' => '__return_false_value', )); $wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'logo', array( 'label' => esc_html__( 'Site Logo', 'biru' ), 'section' => 'title_tagline', 'settings' => 'biru_option[logo]', ))); $wp_customize->add_control( 'display', array( 'label' => esc_html__( 'Display As', 'biru' ), 'section' => 'title_tagline', 'settings' => 'biru_option[display]', 'type' => 'select', 'choices' => array( 'site_title' => __( 'Site Title', 'biru' ), 'site_logo' => __( 'Site Logo', 'biru' ), ), )); // FEATURED POSTS -------------------------------------------------------------------------------------- $wp_customize->add_section( 'biru_featured_posts', array( 'title' => esc_html__( 'Featured Posts', 'biru' ), 'description' => esc_html__( 'Enter comma separated ID of the posts you want to feature on the home page.', 'biru' ), 'priority' => 110, )); $wp_customize->add_setting( 'biru_option[featured]', array( 'default' => '', 'type' => 'option', 'sanitize_callback' => 'sanitize_text_field', )); $wp_customize->add_control( 'featured', array( 'label' => esc_html__( 'Post IDs', 'biru' ), 'section' => 'biru_featured_posts', 'settings' => 'biru_option[featured]', 'type' => 'text', )); // SOCIAL MEDIA ---------------------------------------------------------------------------------------- $wp_customize->add_section( 'biru_social_media', array( 'title' => esc_html__( 'Social Media Links', 'biru' ), 'description' => esc_html__( 'Links for the Social Media buttons on the header.', 'biru' ), 'priority' => 111, )); $wp_customize->add_setting('biru_option[facebook]', array( 'default' => '', 'type' => 'option', 'sanitize_callback' => 'esc_url' )); $wp_customize->add_setting('biru_option[twitter]', array( 'default' => '', 'type' => 'option', 'sanitize_callback' => 'esc_url' )); $wp_customize->add_setting('biru_option[googleplus]', array( 'default' => '', 'type' => 'option', 'sanitize_callback' => 'esc_url' )); $wp_customize->add_setting('biru_option[tumblr]', array( 'default' => '', 'type' => 'option', 'sanitize_callback' => 'esc_url' )); $wp_customize->add_setting('biru_option[instagram]', array( 'default' => '', 'type' => 'option', 'sanitize_callback' => 'esc_url' )); $wp_customize->add_setting('biru_option[youtube]', array( 'default' => '', 'type' => 'option', 'sanitize_callback' => 'esc_url' )); $wp_customize->add_control('facebook', array( 'label' => esc_html__('Facebook URL', 'biru'), 'section' => 'biru_social_media', 'settings' => 'biru_option[facebook]', )); $wp_customize->add_control('twitter', array( 'label' => esc_html__('Twitter URL', 'biru'), 'section' => 'biru_social_media', 'settings' => 'biru_option[twitter]', )); $wp_customize->add_control('googleplus', array( 'label' => esc_html__('Google+ URL', 'biru'), 'section' => 'biru_social_media', 'settings' => 'biru_option[googleplus]', )); $wp_customize->add_control('tumblr', array( 'label' => esc_html__('Tumblr URL', 'biru'), 'section' => 'biru_social_media', 'settings' => 'biru_option[tumblr]', )); $wp_customize->add_control('instagram', array( 'label' => esc_html__('Instagram URL', 'biru'), 'section' => 'biru_social_media', 'settings' => 'biru_option[instagram]', )); $wp_customize->add_control('youtube', array( 'label' => esc_html__('YouTube URL', 'biru'), 'section' => 'biru_social_media', 'settings' => 'biru_option[youtube]', )); $wp_customize->add_control('pinterest', array( 'label' => esc_html__('Pinterest URL', 'biru'), 'section' => 'biru_social_media', 'settings' => 'biru_option[pinterest]', )); } add_action( 'customize_register', 'biru_customize_register' ); function __return_false_value($value) { return $value; } add_filter('__return_false', '__return_false_value'); /** * Sanitize Image. */ function biru_sanitize_image( $image, $setting ) { /* * Array of valid image file types. * * The array includes image mime types that are included in wp_get_mime_types() */ $mimes = array( 'jpg|jpeg|jpe' => 'image/jpeg', 'gif' => 'image/gif', 'png' => 'image/png', 'bmp' => 'image/bmp', 'tif|tiff' => 'image/tiff', 'ico' => 'image/x-icon' ); // Return an array with file extension and mime_type. $file = wp_check_filetype( $image, $mimes ); // If $image has a valid mime_type, return it; otherwise, return the default. return ( $file['ext'] ? $image : $setting->default ); } /** * Sanitize Select. */ function biru_sanitize_select( $input, $setting ) { // Ensure input is a slug. $input = sanitize_key( $input ); // Get list of choices from the control associated with the setting. $choices = $setting->manager->get_control( $setting->id )->choices; // If the input is a valid key, return it; otherwise, return the default. return ( array_key_exists( $input, $choices ) ? $input : $setting->default ); } /** * Binds JS handlers to make Theme Customizer preview reload changes asynchronously. */ function biru_customize_preview_js() { wp_enqueue_script( 'biru_customizer', get_template_directory_uri() . 'assets/js/customizer.js', array( 'customize-preview' ), '20151215', true ); } add_action( 'customize_preview_init', 'biru_customize_preview_js' );