get_setting( 'blogname' )->transport = 'postMessage'; $wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage'; $wp_customize->get_setting( 'background_color' )->transport = 'postMessage'; $wp_customize->get_setting( 'header_textcolor' )->transport = 'postMessage'; /** * Theme Options Panel */ $wp_customize->add_panel( 'allium_theme_options', array( 'title' => esc_html__( 'Theme Options', 'allium' ), 'priority' => 1, ) ); /** * General Options Section */ $wp_customize->add_section( 'allium_general_options', array ( 'title' => esc_html__( 'General Options', 'allium' ), 'panel' => 'allium_theme_options', 'priority' => 10, 'description' => esc_html__( 'Personalize the general settings of your theme.', 'allium' ), ) ); // Excerpt Length $wp_customize->add_setting ( 'allium_excerpt_length', array( 'default' => allium_default( 'allium_excerpt_length' ), 'sanitize_callback' => 'absint', ) ); $wp_customize->add_control ( 'allium_excerpt_length', array( 'label' => esc_html__( 'Excerpt Length', 'allium' ), 'description' => esc_html__( 'Zero (0) length will not show the excerpt.', 'allium' ), 'section' => 'allium_general_options', 'priority' => 1, 'type' => 'number', ) ); /** * Layout Options Section */ $wp_customize->add_section( 'allium_layout_options', array ( 'title' => esc_html__( 'Layout Options', 'allium' ), 'panel' => 'allium_theme_options', 'priority' => 20, 'description' => esc_html__( 'Personalize the layout settings of your theme.', 'allium' ), ) ); // Theme Layout $wp_customize->add_setting ( 'allium_theme_layout', array( 'default' => allium_default( 'allium_theme_layout' ), 'sanitize_callback' => 'allium_sanitize_select', ) ); $wp_customize->add_control ( 'allium_theme_layout', array( 'label' => esc_html__( 'Theme Layout', 'allium' ), 'description' => esc_html__( 'Box layout will be visible at minimum 1200px display', 'allium' ), 'section' => 'allium_layout_options', 'priority' => 1, 'type' => 'select', 'choices' => array( 'wide' => esc_html__( 'Wide', 'allium' ), 'box' => esc_html__( 'Box', 'allium' ), ), ) ); // Main Sidebar Position $wp_customize->add_setting ( 'allium_sidebar_position', array ( 'default' => allium_default( 'allium_sidebar_position' ), 'sanitize_callback' => 'allium_sanitize_select', ) ); $wp_customize->add_control ( 'allium_sidebar_position', array ( 'label' => esc_html__( 'Main Sidebar Position (if active)', 'allium' ), 'section' => 'allium_layout_options', 'priority' => 2, 'type' => 'select', 'choices' => array( 'right' => esc_html__( 'Right', 'allium'), 'left' => esc_html__( 'Left', 'allium'), ), ) ); /** * Footer Section */ $wp_customize->add_section( 'allium_footer_options', array ( 'title' => esc_html__( 'Footer Options', 'allium' ), 'panel' => 'allium_theme_options', 'priority' => 30, 'description' => esc_html__( 'Personalize the footer settings of your theme.', 'allium' ), ) ); // Copyright Control $wp_customize->add_setting ( 'allium_copyright', array ( 'default' => allium_default( 'allium_copyright' ), 'transport' => 'postMessage', 'sanitize_callback' => 'wp_kses_post', ) ); $wp_customize->add_control ( 'allium_copyright', array ( 'label' => esc_html__( 'Copyright', 'allium' ), 'section' => 'allium_footer_options', 'priority' => 1, 'type' => 'textarea', ) ); // Credit Control $wp_customize->add_setting ( 'allium_credit', array ( 'default' => allium_default( 'allium_credit' ), 'transport' => 'postMessage', 'sanitize_callback' => 'allium_sanitize_checkbox', ) ); $wp_customize->add_control ( 'allium_credit', array ( 'label' => esc_html__( 'Display Designer Credit', 'allium' ), 'section' => 'allium_footer_options', 'priority' => 2, 'type' => 'checkbox', ) ); /** * Support Section */ $wp_customize->add_section( 'allium_support_options', array( 'title' => esc_html__( 'Support Options', 'allium' ), 'description' => esc_html__( 'Thanks for your interest in Allium! To share your feedback and for any support query you can reach us at', 'allium' ), 'panel' => 'allium_theme_options', 'priority' => 40, ) ); // Theme Support $wp_customize->add_setting ( 'allium_theme_support', array( 'default' => '', ) ); $wp_customize->add_control( new Fashion_Sleeve_Button_Control( $wp_customize, 'allium_theme_support', array( 'label' => esc_html__( 'Allium Support', 'allium' ), 'section' => 'allium_support_options', 'priority' => 1, 'type' => 'allium-button', 'button_tag' => 'a', 'button_class' => 'button button-primary', 'button_href' => 'https://templatelens.com/contact/', 'button_target' => '_blank', ) ) ); /** * Review Section */ $wp_customize->add_section( 'allium_review_options', array( 'title' => esc_html__( 'Add Your Review', 'allium' ), 'description' => esc_html__( 'Why not leave us a review on WordPress.org? Your review on WordPress will be highly appreciated, as it encourages us to keep updating and supporting the product.', 'allium' ), 'panel' => 'allium_theme_options', 'priority' => 50, ) ); // Theme $wp_customize->add_setting ( 'allium_theme_review', array( 'default' => '', ) ); $wp_customize->add_control( new Fashion_Sleeve_Button_Control( $wp_customize, 'allium_theme_review', array( 'label' => esc_html__( 'Review on WordPress.org', 'allium' ), 'section' => 'allium_review_options', 'type' => 'allium-button', 'button_tag' => 'a', 'button_class' => 'button button-primary', 'button_href' => 'https://wordpress.org/support/theme/allium/reviews', 'button_target' => '_blank', ) ) ); } add_action( 'customize_register', 'allium_customize_register' ); /** * Button Control Class */ if ( class_exists( 'WP_Customize_Control' ) ) { class Fashion_Sleeve_Button_Control extends WP_Customize_Control { /** * @access public * @var string */ public $type = 'allium-button'; /** * HTML tag to render button object. * * @var string */ protected $button_tag = 'button'; /** * Class to render button object. * * @var string */ protected $button_class = 'button button-primary'; /** * Link for based button. * * @var string */ protected $button_href = 'javascript:void(0)'; /** * Target for based button. * * @var string */ protected $button_target = ''; /** * Click event handler. * * @var string */ protected $button_onclick = ''; /** * ID attribute for HTML tab. * * @var string */ protected $button_tag_id = ''; /** * Render the control's content. */ public function render_content() { ?> button_tag ); // button class if ( ! empty( $this->button_class ) ) { echo ' class="' . esc_attr( $this->button_class ) . '"'; } // button or href if ( 'button' == $this->button_tag ) { echo ' type="button"'; } else { echo ' href="' . esc_url( $this->button_href ) . '"' . ( empty( $this->button_tag ) ? '' : ' target="' . esc_attr( $this->button_target ) . '"' ); } // onClick Event if ( ! empty( $this->button_onclick ) ) { echo ' onclick="' . esc_js( $this->button_onclick ) . '"'; } // ID if ( ! empty( $this->button_tag_id ) ) { echo ' id="' . esc_attr( $this->button_tag_id ) . '"'; } echo '>'; // Print text inside tag echo esc_html( $this->label ); // Print close tag echo 'button_tag ) . '>'; ?> 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 ); } /** * Sanitize the checkbox. * * @param bool $checked Whether the checkbox is checked. * @return bool Whether the checkbox is checked. */ function allium_sanitize_checkbox( $checked ) { return ( ( isset( $checked ) && true === $checked ) ? true : false ); } /** * Binds JS handlers to make Theme Customizer preview reload changes asynchronously. */ function allium_customize_preview_js() { wp_enqueue_script( 'allium_customizer', get_template_directory_uri() . '/js/customizer.js', array( 'customize-preview' ), '20140120', true ); } add_action( 'customize_preview_init', 'allium_customize_preview_js' );