add_setting( 'layout_style', array( * 'default' => 'no-sidebar', * 'sanitize_callback' => 'sanitize_key' * ) ); * * $wp_customize->add_control( new Beetan_Customize_Select2_Control( $wp_customize, 'logo_font[style]', array( * 'label' => esc_html__( 'Logo Font Style', 'beetan' ), * 'placeholder' => esc_html__( 'Font Style', 'beetan' ), * 'section' => 'typography_options', * 'choices' => beetan_standard_font_styles(), * 'choices' => array( * array( * 'label' => 'Standard Fonts', * 'options' => beetan_standard_fonts() * ), * array( * 'label' => 'Google Fonts', * 'options' => beetan_google_fonts() * ), * ), * 'required' => array( 'logo_font_type', 'standard' ) * ) ) ); */ if ( ! class_exists( 'Beetan_Customize_Select2_Control' ) ): class Beetan_Customize_Select2_Control extends WP_Customize_Control { public $type = 'select2'; private $placeholder; private $require; public function __construct( $manager, $id, $args = array() ) { parent::__construct( $manager, $id, $args ); $this->placeholder = isset( $args[ 'placeholder' ] ) ? $args[ 'placeholder' ] : ''; $this->required = isset( $args[ 'required' ] ) ? $args[ 'required' ] : FALSE; } public function to_json() { parent::to_json(); $this->json[ 'placeholder' ] = $this->placeholder; $this->json[ 'required' ] = $this->required; } public function enqueue() { $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; wp_enqueue_style( 'select2', esc_url( get_theme_file_uri( "/assets/css/select2{$suffix}.css" ) ) ); wp_enqueue_script( 'select2', esc_url( get_theme_file_uri( "/assets/js/select2{$suffix}.js" ) ), array( 'jquery' ), FALSE, TRUE ); wp_enqueue_script( 'customize-select2-control', esc_url( get_theme_file_uri( "/assets/js/customize-select2-control$suffix.js" ) ), array( 'jquery', 'select2' ), FALSE, TRUE ); wp_enqueue_style( 'customize-select2-control', esc_url( get_theme_file_uri( "/assets/css/customize-select2-control$suffix.css" ) ) ); } protected function render_content() { if ( empty( $this->choices ) ) { return; } ?>