add_section( 'blog_talk_archive_page_options', array( 'title' => esc_html__( 'Blog / Archive Pages Options', 'blog-talk' ), 'panel' => 'blog_talk_theme_options_panel', ) ); // Excerpt - Excerpt Length. $wp_customize->add_setting( 'blog_talk_excerpt_length', array( 'default' => 35, 'sanitize_callback' => 'blog_talk_sanitize_number_range', ) ); $wp_customize->add_control( 'blog_talk_excerpt_length', array( 'label' => esc_html__( 'Excerpt Length (no. of words)', 'blog-talk' ), 'section' => 'blog_talk_archive_page_options', 'settings' => 'blog_talk_excerpt_length', 'type' => 'number', 'input_attrs' => array( 'min' => 5, 'max' => 200, 'step' => 1, ), ) ); // Archive layout style options. $wp_customize->add_setting( 'blog_talk_archive_layout_style', array( 'default' => 'list-layout', 'sanitize_callback' => 'blog_talk_sanitize_select', ) ); $wp_customize->add_control( 'blog_talk_archive_layout_style', array( 'label' => esc_html__( 'Archive Layout Options', 'blog-talk' ), 'section' => 'blog_talk_archive_page_options', 'type' => 'select', 'choices' => array( 'grid-layout' => __( 'Grid Layout', 'blog-talk' ), 'list-layout' => __( 'List Layout', 'blog-talk' ), ), ) ); // Grid Column layout options. $wp_customize->add_setting( 'blog_talk_archive_grid_column_layout', array( 'default' => 'grid-column-3', 'sanitize_callback' => 'blog_talk_sanitize_select', ) ); $wp_customize->add_control( 'blog_talk_archive_grid_column_layout', array( 'label' => esc_html__( 'Grid Column Layout', 'blog-talk' ), 'section' => 'blog_talk_archive_page_options', 'type' => 'select', 'active_callback' => 'blog_talk_is_archive_grid_layout', 'choices' => array( 'grid-column-2' => __( 'Column 2', 'blog-talk' ), 'grid-column-3' => __( 'Column 3', 'blog-talk' ), ), ) ); // Enable archive page category setting. $wp_customize->add_setting( 'blog_talk_enable_archive_category', array( 'default' => true, 'sanitize_callback' => 'blog_talk_sanitize_checkbox', ) ); $wp_customize->add_control( new Blog_Talk_Toggle_Checkbox_Custom_control( $wp_customize, 'blog_talk_enable_archive_category', array( 'label' => esc_html__( 'Enable Category', 'blog-talk' ), 'settings' => 'blog_talk_enable_archive_category', 'section' => 'blog_talk_archive_page_options', 'type' => 'checkbox', ) ) ); // Enable archive page author setting. $wp_customize->add_setting( 'blog_talk_enable_archive_author', array( 'default' => true, 'sanitize_callback' => 'blog_talk_sanitize_checkbox', ) ); $wp_customize->add_control( new Blog_Talk_Toggle_Checkbox_Custom_control( $wp_customize, 'blog_talk_enable_archive_author', array( 'label' => esc_html__( 'Enable Author', 'blog-talk' ), 'settings' => 'blog_talk_enable_archive_author', 'section' => 'blog_talk_archive_page_options', 'type' => 'checkbox', ) ) ); // Enable archive page date setting. $wp_customize->add_setting( 'blog_talk_enable_archive_date', array( 'default' => true, 'sanitize_callback' => 'blog_talk_sanitize_checkbox', ) ); $wp_customize->add_control( new Blog_Talk_Toggle_Checkbox_Custom_control( $wp_customize, 'blog_talk_enable_archive_date', array( 'label' => esc_html__( 'Enable Date', 'blog-talk' ), 'settings' => 'blog_talk_enable_archive_date', 'section' => 'blog_talk_archive_page_options', 'type' => 'checkbox', ) ) ); /*========================Active Callback==============================*/ function blog_talk_is_archive_grid_layout( $control ) { return ( $control->manager->get_setting( 'blog_talk_archive_layout_style' )->value() === 'grid-layout' ); }