245 lines
6.2 KiB
PHP
245 lines
6.2 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* This file handles the content spacing Customizer options.
|
||
|
*
|
||
|
* @package GP Premium
|
||
|
*/
|
||
|
|
||
|
if ( ! defined( 'ABSPATH' ) ) {
|
||
|
exit; // No direct access, please.
|
||
|
}
|
||
|
|
||
|
// Add our old Spacing section.
|
||
|
$wp_customize->add_section(
|
||
|
'generate_spacing_content',
|
||
|
array(
|
||
|
'title' => __( 'Content', 'gp-premium' ),
|
||
|
'capability' => 'edit_theme_options',
|
||
|
'priority' => 10,
|
||
|
'panel' => 'generate_spacing_panel',
|
||
|
)
|
||
|
);
|
||
|
|
||
|
// If we don't have a layout panel, use our old spacing section.
|
||
|
if ( $wp_customize->get_panel( 'generate_layout_panel' ) ) {
|
||
|
$content_section = 'generate_layout_container';
|
||
|
} else {
|
||
|
$content_section = 'generate_spacing_content';
|
||
|
}
|
||
|
|
||
|
// Take control of the container width control.
|
||
|
// This control is handled by the free theme, but we take control of it here for consistency between control styles.
|
||
|
$wp_customize->add_control(
|
||
|
new GeneratePress_Pro_Range_Slider_Control(
|
||
|
$wp_customize,
|
||
|
'generate_settings[container_width]',
|
||
|
array(
|
||
|
'label' => __( 'Container Width', 'gp-premium' ),
|
||
|
'section' => 'generate_layout_container',
|
||
|
'settings' => array(
|
||
|
'desktop' => 'generate_settings[container_width]',
|
||
|
),
|
||
|
'choices' => array(
|
||
|
'desktop' => array(
|
||
|
'min' => 700,
|
||
|
'max' => 2000,
|
||
|
'step' => 5,
|
||
|
'edit' => true,
|
||
|
'unit' => 'px',
|
||
|
),
|
||
|
),
|
||
|
'priority' => 0,
|
||
|
)
|
||
|
)
|
||
|
);
|
||
|
|
||
|
// Separating space.
|
||
|
$wp_customize->add_setting(
|
||
|
'generate_spacing_settings[separator]',
|
||
|
array(
|
||
|
'default' => $defaults['separator'],
|
||
|
'type' => 'option',
|
||
|
'capability' => 'edit_theme_options',
|
||
|
'sanitize_callback' => 'absint',
|
||
|
'transport' => 'postMessage',
|
||
|
)
|
||
|
);
|
||
|
|
||
|
$wp_customize->add_control(
|
||
|
new GeneratePress_Pro_Range_Slider_Control(
|
||
|
$wp_customize,
|
||
|
'generate_spacing_settings[separator]',
|
||
|
array(
|
||
|
'label' => __( 'Separating Space', 'gp-premium' ),
|
||
|
'section' => $content_section,
|
||
|
'settings' => array(
|
||
|
'desktop' => 'generate_spacing_settings[separator]',
|
||
|
),
|
||
|
'choices' => array(
|
||
|
'desktop' => array(
|
||
|
'min' => 0,
|
||
|
'max' => 100,
|
||
|
'step' => 1,
|
||
|
'edit' => true,
|
||
|
'unit' => 'px',
|
||
|
),
|
||
|
),
|
||
|
)
|
||
|
)
|
||
|
);
|
||
|
|
||
|
// Content padding top.
|
||
|
$wp_customize->add_setting(
|
||
|
'generate_spacing_settings[content_top]',
|
||
|
array(
|
||
|
'default' => $defaults['content_top'],
|
||
|
'type' => 'option',
|
||
|
'sanitize_callback' => 'absint',
|
||
|
'transport' => 'postMessage',
|
||
|
)
|
||
|
);
|
||
|
|
||
|
// Content padding right.
|
||
|
$wp_customize->add_setting(
|
||
|
'generate_spacing_settings[content_right]',
|
||
|
array(
|
||
|
'default' => $defaults['content_right'],
|
||
|
'type' => 'option',
|
||
|
'sanitize_callback' => 'absint',
|
||
|
'transport' => 'postMessage',
|
||
|
)
|
||
|
);
|
||
|
|
||
|
// Content padding bottom.
|
||
|
$wp_customize->add_setting(
|
||
|
'generate_spacing_settings[content_bottom]',
|
||
|
array(
|
||
|
'default' => $defaults['content_bottom'],
|
||
|
'type' => 'option',
|
||
|
'sanitize_callback' => 'absint',
|
||
|
'transport' => 'postMessage',
|
||
|
)
|
||
|
);
|
||
|
|
||
|
// Content padding left.
|
||
|
$wp_customize->add_setting(
|
||
|
'generate_spacing_settings[content_left]',
|
||
|
array(
|
||
|
'default' => $defaults['content_left'],
|
||
|
'type' => 'option',
|
||
|
'sanitize_callback' => 'absint',
|
||
|
'transport' => 'postMessage',
|
||
|
)
|
||
|
);
|
||
|
|
||
|
$content_padding_settings = array(
|
||
|
'desktop_top' => 'generate_spacing_settings[content_top]',
|
||
|
'desktop_right' => 'generate_spacing_settings[content_right]',
|
||
|
'desktop_bottom' => 'generate_spacing_settings[content_bottom]',
|
||
|
'desktop_left' => 'generate_spacing_settings[content_left]',
|
||
|
);
|
||
|
|
||
|
// If mobile_content_top is set, the rest of them are too.
|
||
|
// We have to check as these defaults are set in the theme.
|
||
|
if ( isset( $defaults['mobile_content_top'] ) ) {
|
||
|
$content_padding_settings['mobile_top'] = 'generate_spacing_settings[mobile_content_top]';
|
||
|
$content_padding_settings['mobile_right'] = 'generate_spacing_settings[mobile_content_right]';
|
||
|
$content_padding_settings['mobile_bottom'] = 'generate_spacing_settings[mobile_content_bottom]';
|
||
|
$content_padding_settings['mobile_left'] = 'generate_spacing_settings[mobile_content_left]';
|
||
|
|
||
|
// Mobile content padding top.
|
||
|
$wp_customize->add_setting(
|
||
|
'generate_spacing_settings[mobile_content_top]',
|
||
|
array(
|
||
|
'default' => $defaults['mobile_content_top'],
|
||
|
'type' => 'option',
|
||
|
'sanitize_callback' => 'absint',
|
||
|
'transport' => 'postMessage',
|
||
|
)
|
||
|
);
|
||
|
|
||
|
// Content padding right.
|
||
|
$wp_customize->add_setting(
|
||
|
'generate_spacing_settings[mobile_content_right]',
|
||
|
array(
|
||
|
'default' => $defaults['mobile_content_right'],
|
||
|
'type' => 'option',
|
||
|
'sanitize_callback' => 'absint',
|
||
|
'transport' => 'postMessage',
|
||
|
)
|
||
|
);
|
||
|
|
||
|
// Content padding bottom.
|
||
|
$wp_customize->add_setting(
|
||
|
'generate_spacing_settings[mobile_content_bottom]',
|
||
|
array(
|
||
|
'default' => $defaults['mobile_content_bottom'],
|
||
|
'type' => 'option',
|
||
|
'sanitize_callback' => 'absint',
|
||
|
'transport' => 'postMessage',
|
||
|
)
|
||
|
);
|
||
|
|
||
|
// Content padding left.
|
||
|
$wp_customize->add_setting(
|
||
|
'generate_spacing_settings[mobile_content_left]',
|
||
|
array(
|
||
|
'default' => $defaults['mobile_content_left'],
|
||
|
'type' => 'option',
|
||
|
'sanitize_callback' => 'absint',
|
||
|
'transport' => 'postMessage',
|
||
|
)
|
||
|
);
|
||
|
}
|
||
|
|
||
|
// Make use of the content padding settings.
|
||
|
$wp_customize->add_control(
|
||
|
new GeneratePress_Spacing_Control(
|
||
|
$wp_customize,
|
||
|
'content_spacing',
|
||
|
array(
|
||
|
'type' => 'generatepress-spacing',
|
||
|
'label' => esc_html__( 'Content Padding', 'gp-premium' ),
|
||
|
'section' => $content_section,
|
||
|
'settings' => $content_padding_settings,
|
||
|
'element' => 'content',
|
||
|
'priority' => 99,
|
||
|
)
|
||
|
)
|
||
|
);
|
||
|
|
||
|
$wp_customize->add_setting(
|
||
|
'generate_spacing_settings[content_element_separator]',
|
||
|
array(
|
||
|
'default' => $defaults['content_element_separator'],
|
||
|
'type' => 'option',
|
||
|
'capability' => 'edit_theme_options',
|
||
|
'sanitize_callback' => 'generate_premium_sanitize_decimal_integer',
|
||
|
'transport' => 'postMessage',
|
||
|
)
|
||
|
);
|
||
|
|
||
|
$wp_customize->add_control(
|
||
|
new GeneratePress_Pro_Range_Slider_Control(
|
||
|
$wp_customize,
|
||
|
'generate_spacing_settings[content_element_separator]',
|
||
|
array(
|
||
|
'label' => __( 'Content Separator', 'gp-premium' ),
|
||
|
'sub_description' => __( 'The content separator controls the space between the featured image, title, content and entry meta.', 'gp-premium' ),
|
||
|
'section' => $content_section,
|
||
|
'settings' => array(
|
||
|
'desktop' => 'generate_spacing_settings[content_element_separator]',
|
||
|
),
|
||
|
'choices' => array(
|
||
|
'desktop' => array(
|
||
|
'min' => 0,
|
||
|
'max' => 10,
|
||
|
'step' => .1,
|
||
|
'edit' => true,
|
||
|
'unit' => 'em',
|
||
|
),
|
||
|
),
|
||
|
)
|
||
|
)
|
||
|
);
|