'Written by', 'read_more_text' => 'Continue reading', 'display_author_id' => '', ); } if ( class_exists( 'WP_Customize_Control' ) ) { class ABC_Description_Control extends WP_Customize_Control { public function render_content() { echo $this->description; } } class ABC_Reset_Control extends WP_Customize_Control { public function render_content() { echo '

' . $this->description . '

'; echo ''; } } } class ABC_Customizer { public function __construct() { add_action( 'init', array( $this, 'init' ) ); add_action( 'customize_register', array( $this, 'customize_register' ), 99 ); add_action( 'customize_controls_enqueue_scripts', array( $this, 'customize_controls_enqueue_scripts' ) ); add_action( 'customize_preview_init', array( $this, 'customize_preview_init' ) ); } static public function init() { if ( current_user_can( 'edit_theme_options' ) ) { if ( isset( $_REQUEST['abc-reset'] ) ) { if ( ! wp_verify_nonce( $_REQUEST['abc-reset'], 'abc-customizer' ) ) { return; } remove_theme_mods(); wp_redirect( esc_url( admin_url( 'customize.php' ) ) ); } } } public function customize_preview_init() { wp_enqueue_script( 'abc-byline', ABC_THEME_URL . '/js/admin/abc-byline-customizer.js', array( 'jquery', 'customize-preview' ), '', true ); } public function customize_register( $wp_customize ) { $abc_default_theme_options = abc_default_theme_options(); $wp_customize->get_control( 'background_color' )->label = __( 'Sidebar Color', 'byline' ); $wp_customize->remove_section( 'background_image' ); ## Layout section $wp_customize->add_section( 'abc_layout', array( 'title' => __( 'Layout', 'byline' ), 'priority' => 22, ) ); // setting $wp_customize->add_setting( 'byline_text', array( 'default' => $abc_default_theme_options['byline_text'], 'transport' => 'postMessage', 'sanitize_callback' => 'abc_sanitize_text', ) ); // control $wp_customize->add_control( 'byline_text', array( 'label' => __( 'Byline text', 'byline' ), 'section' => 'abc_layout', 'priority' => 1, 'type' => 'text' ) ); // setting $wp_customize->add_setting( 'read_more_text', array( 'default' => $abc_default_theme_options['read_more_text'], 'transport' => 'postMessage', 'sanitize_callback' => 'abc_sanitize_text', ) ); // control $wp_customize->add_control( 'read_more_text', array( 'label' => __( 'Read More text', 'byline' ), 'section' => 'abc_layout', 'priority' => 2, 'type' => 'text' ) ); // setting $wp_customize->add_setting( 'display_author_id', array( 'default' => $abc_default_theme_options['display_author_id'], 'sanitize_callback' => 'absint', ) ); // control $wp_customize->add_control( 'display_author_id', array( 'label' => __( 'Select Author', 'byline' ), 'section' => 'abc_layout', 'priority' => 3, 'description' => __( 'Add an author ID to display their avatar and info in the sidebar.', 'byline' ), 'type' => 'text', ) ); ## Reset section $wp_customize->add_section( 'abc_reset', array( 'title' => __( 'Reset', 'byline' ), 'priority' => 999, ) ); // setting $wp_customize->add_setting( 'reset_theme_options', array( 'sanitize_callback' => 'absint', ) ); // control $wp_customize->add_control( new ABC_Reset_Control( $wp_customize, 'reset_theme_options', array( 'section' => 'abc_reset', 'priority' => 1, 'description' => __( 'Click on the button below to reset all theme options back to default.', 'byline' ), ) ) ); } public function customize_controls_enqueue_scripts() { wp_enqueue_script( 'abc-customizer', ABC_THEME_URL . '/js/admin/customizer.js', array( 'jquery' ), '', true ); wp_localize_script( 'abc-customizer', 'ABC_Customizer', array( 'customizerURL' => admin_url( 'customize.php' ), 'exportNonce' => wp_create_nonce( 'abc-customizer' ), 'upgradeAd' => __( 'Unlock Premium Theme Options', 'byline' ), 'confirmText' => __( 'Are you sure?', 'byline' ), )); if ( ! function_exists( 'abc_premium_features' ) ) { wp_enqueue_script( 'abc-upgrade', ABC_THEME_URL . '/js/admin/upgrade.js', array( 'jquery' ), '', true ); } wp_enqueue_style( 'abc-customizer-styles', ABC_THEME_URL . '/css/admin/customizer.css' ); } } $abc_customizer = new ABC_Customizer; function abc_sanitize_checkbox( $value ) { if ( 'on' == $value ) { return $value; } else { return false; } } function abc_sanitize_text( $input ) { return wp_kses_post( force_balance_tags( $input ) ); }