/home/fdhrevqn/public_html/wp-content/themes/fox/inc/customizer/blog.php
<?php
$options[ 'home_layout' ] = array(
    'type'      => 'select',
    'options'   => [
        'standard' => 'Standard',
        'list' => 'List',
        'grid' => 'Grid',
        'masonry' => 'Masonry',
        'newspaper' => 'Newspaper',
        'vertical' => 'Post Vertical',
    ],
    'std'       => 'list',
    'name'      => 'Homepage Layout',
    
    'section' => 'blog_home',
    'section_title' => 'Homepage Layout',
    
    'panel' => 'blog',
    'panel_title' => 'BLOG',
    'panel_priority' => 125,

    'hint' => 'Homepage layout',
);

$options[ 'home_sidebar_state' ] = array(
    'type'      => 'select',
    'options'   => [
        'sidebar-left'  => 'Sidebar Left',
        'sidebar-right' => 'Sidebar Right',
        'no-sidebar'    => 'No Sidebar',
    ],
    'std'       => 'sidebar-right',
    'name'      => 'Main Stream Sidebar',
    
    'hint' => 'Homepage sidebar',
);

$options[ 'home_number' ] = array(
    'type'      => 'text',
    'name'      => esc_html__( 'Custom number of posts to show on blog', 'wi' ),
    'placeholder' => 'Eg. 5',
    'desc'      => 'This option only works for the main blog. For a general setting of number of posts to show, please visit Dashboard > Settings > Reading',
    
    'hint' => 'Main stream number of posts',
);

$options[ 'offset' ] = array(
    'type'      => 'text',
    'name'      => 'Offset?',
    'placeholder' => 'Eg. 3',
    'desc'      => 'If you enter 3, your blog stream starts from 4th. This option only works for the main blog.',
    
    'hint' => 'Main stream offset',
);

$categories = get_categories( array(
    'fields' => 'id=>name',
    'orderby'=> 'slug',
    'hide_empty' => false,

    'number' => 100, // prevent huge blogs
));

$options[ 'exclude_sticky' ] = array(
    'shorthand' => 'enable',
    'name'      => 'Exclude sticky posts',
    'std'       => 'false',
    'options'   => [
        'true' => 'Yes please!',
        'false' => 'No thanks!'
    ],
    
    'hint' => 'Exclude sticky posts',
);

$options[ 'exclude_featured_posts' ] = array(
    'shorthand' => 'enable',
    'name'      => 'Exclude featured posts',
    'std'       => 'false',
    'options'   => [
        'true' => 'Yes please!',
        'false' => 'No thanks!'
    ],
    
    'hint' => 'Exclude featured posts',
);

// since 4.0
$options[ 'include_categories' ] = array(
    'type'      => 'multicheckbox',
    'name'      => 'Include only categories:',
    'std'       => '',
    'options'   => $categories,
    
    'hint' => 'Main stream include/exclude cats',
);

$options[ 'exclude_categories' ] = array(
    'type'      => 'multicheckbox',
    'name'      => 'Exclude categories:',
    'options'   => $categories,
);

/* Layout
----------------------------------- */
$pages = [
    'category' => 'Category',
    'tag' => 'Tag',
    'archive' => 'Date / Month / Year',
    'author' => 'Author',
    'search' => 'Search',
];

foreach ( $pages as $page => $name ) {

    $options[] = [
        'type' => 'heading',
        'name' => $name,

        'section' => 'blog_archive',
        'section_title' => 'Archive Layouts (Category, Tag..)',
        'panel' => 'blog',
    ];

    $options[ $page . '_layout' ] = array(
        'type'      => 'select',
        'options'   => $layout_options,
        'std'       => 'list',
        'name'      => $name . ' Layout',
        
        'hint' =>  $name . ' layout',
    );

    $options[ $page . '_sidebar_state' ] = array(
        'type'      => 'select',
        'options'   => [
            'sidebar-left'  => 'Sidebar Left',
            'sidebar-right' => 'Sidebar Right',
            'no-sidebar'    => 'No Sidebar',
        ],
        'std'       => 'sidebar-right',
        'name'      => $name . ' Sidebar',
        
        'hint' =>  $name . ' sidebar',
    );

}

/* Category / Tag top area
----------------------------------- */
$archive_types = [
    'category' => 'Category',
    'tag' => 'Tag',
    'author' => 'Author',
];

$options[ 'top_area_non_duplicate' ] = array(
    'shorthand' => 'enable',
    'std'       => 'false',
    'name' => 'Non-duplicate posts?',
    'desc' => 'Ie. if a post is shown in top area, it won\'t be displayed again in the main stream',
    
    'section' => 'blog_toparea',
    'section_title' => 'Archive Top Area',
    'panel' => 'blog',
);

foreach ( $archive_types as $slug => $name ) {

    $prefix = $slug . '_top_area_';

    $options[] = array(
        'type'      => 'heading',
        'name'      => $name . ' Top Area',

        'section' => 'blog_toparea',
        'section_title' => 'Archive Top Area',
        'panel' => 'blog',
        
        'hint' =>  $name . ' top area',
    );

    $options[ $prefix . 'display' ] = array(
        'type'      => 'select',
        'options'   => [
            '' => 'None',
            'view' => 'Most Viewed Posts',
            'comment_count' => 'Most Commented Posts',
            'featured' => 'Featured Posts (Starred Posts)',
        ],
        'std'       => '',
        'name'      => 'Top area of ' . $name . ' shows:',
    );

    $options[ $prefix . 'layout' ] = array(
        'type'      => 'select',
        'options'   => fox_topbar_layout_support(),
        'std'       => 'group-1',
        'name'      => 'Top area layout',
    );

    $options[ $prefix . 'number' ] = array(
        'type'      => 'text',
        'std'       => '4',
        'placeholder' => '4',
        'name'      => 'Number of posts to show',
    );

}

/* Pagination
----------------------------------- */
$options[ 'pagination_style' ] = array(
    'type'      => 'radio',
    'std'       => '1',
    'name' => 'Pagination Style',
    'options'   => [
        '1'     => 'Style 1 (Minimal)',
        '2'     => 'Style 2 (Square border)',
        '3'     => 'Style 3 (Square gray)',
        '4'     => 'Style 4 (Circle)',
    ],
    
    'section' => 'blog_pagination',
    'section_title' => 'Pagination',
    'panel' => 'blog',
    
    'hint' => 'Pagination style',
);

$post_layout_options = fox_customize_post_layout_options();

$options += $post_layout_options;