laipower/wp-content/plugins/gp-premium/backgrounds/functions/functions.php
2020-04-07 13:03:04 +00:00

1316 lines
41 KiB
PHP

<?php
// No direct access, please
if ( ! defined( 'ABSPATH' ) ) exit;
// Add necessary files
require_once plugin_dir_path( __FILE__ ) . 'secondary-nav-backgrounds.php';
require_once plugin_dir_path( __FILE__ ) . 'css.php';
if ( ! function_exists( 'generate_get_background_defaults' ) ) {
/**
* Set default options
*
* @since 0.1
*/
function generate_get_background_defaults() {
$generate_background_defaults = array(
'body_image' => '',
'body_repeat' => '',
'body_size' => '',
'body_attachment' => '',
'body_position' => '',
'top_bar_image' => '',
'top_bar_repeat' => '',
'top_bar_size' => '',
'top_bar_attachment' => '',
'top_bar_position' => '',
'header_image' => '',
'header_repeat' => '',
'header_size' => '',
'header_attachment' => '',
'header_position' => '',
'nav_image' => '',
'nav_repeat' => '',
'nav_item_image' => '',
'nav_item_repeat' => '',
'nav_item_hover_image' => '',
'nav_item_hover_repeat' => '',
'nav_item_current_image' => '',
'nav_item_current_repeat' => '',
'sub_nav_image' => '',
'sub_nav_repeat' => '',
'sub_nav_item_image' => '',
'sub_nav_item_repeat' => '',
'sub_nav_item_hover_image' => '',
'sub_nav_item_hover_repeat' => '',
'sub_nav_item_current_image' => '',
'sub_nav_item_current_repeat' => '',
'content_image' => '',
'content_repeat' => '',
'content_size' => '',
'content_attachment' => '',
'content_position' => '',
'sidebar_widget_image' => '',
'sidebar_widget_repeat' => '',
'sidebar_widget_size' => '',
'sidebar_widget_attachment' => '',
'sidebar_widget_position' => '',
'footer_widget_image' => '',
'footer_widget_repeat' => '',
'footer_widget_size' => '',
'footer_widget_attachment' => '',
'footer_widget_position' => '',
'footer_image' => '',
'footer_repeat' => '',
'footer_size' => '',
'footer_attachment' => '',
'footer_position' => '',
);
return apply_filters( 'generate_background_option_defaults', $generate_background_defaults );
}
}
if ( ! function_exists( 'generate_backgrounds_customize' ) ) {
add_action( 'customize_register', 'generate_backgrounds_customize', 999 );
/**
* Build our Customizer options
*
* @since 0.1
*/
function generate_backgrounds_customize( $wp_customize ) {
// Get our defaults
$defaults = generate_get_background_defaults();
// Get our controls
require_once GP_LIBRARY_DIRECTORY . 'customizer-helpers.php';
// Register our custom control
if ( method_exists( $wp_customize,'register_control_type' ) ) {
$wp_customize->register_control_type( 'GeneratePress_Background_Images_Customize_Control' );
$wp_customize->register_control_type( 'GeneratePress_Section_Shortcut_Control' );
}
// Add our panel
if ( class_exists( 'WP_Customize_Panel' ) ) {
if ( ! $wp_customize->get_panel( 'generate_backgrounds_panel' ) ) {
$wp_customize->add_panel( 'generate_backgrounds_panel', array(
'capability' => 'edit_theme_options',
'theme_supports' => '',
'title' => __( 'Background Images', 'gp-premium' ),
'priority' => 55
) );
}
}
$wp_customize->add_section(
'backgrounds_section',
array(
'title' => __( 'Background Images', 'gp-premium' ),
'capability' => 'edit_theme_options',
'priority' => 50,
)
);
$wp_customize->add_section(
'generate_backgrounds_body',
array(
'title' => __( 'Body', 'gp-premium' ),
'capability' => 'edit_theme_options',
'priority' => 5,
'panel' => 'generate_backgrounds_panel',
)
);
$wp_customize->add_control(
new GeneratePress_Section_Shortcut_Control(
$wp_customize,
'generate_body_background_image_shortcuts',
array(
'section' => 'generate_backgrounds_body',
'element' => __( 'Body', 'gp-premium' ),
'shortcuts' => array(
'layout' => 'generate_layout_container',
'colors' => 'body_section',
'typography' => 'font_section',
),
'settings' => ( isset( $wp_customize->selective_refresh ) ) ? array() : 'blogname',
)
)
);
/**
* Body background
*/
$wp_customize->add_setting(
'generate_background_settings[body_image]', array(
'default' => $defaults['body_image'],
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'esc_url_raw',
)
);
$wp_customize->add_control(
new WP_Customize_Image_Control(
$wp_customize,
'generate_backgrounds-body-image',
array(
'section' => 'generate_backgrounds_body',
'settings' => 'generate_background_settings[body_image]',
'label' => __( 'Body', 'gp-premium' ),
)
)
);
$wp_customize->add_setting(
'generate_background_settings[body_repeat]',
array(
'default' => $defaults['body_repeat'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_setting(
'generate_background_settings[body_size]',
array(
'default' => $defaults['body_size'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_setting(
'generate_background_settings[body_attachment]',
array(
'default' => $defaults['body_attachment'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_setting(
'generate_background_settings[body_position]', array(
'default' => $defaults['body_position'],
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'esc_html',
)
);
$wp_customize->add_control(
new GeneratePress_Background_Images_Customize_Control(
$wp_customize,
'body_backgrounds_control',
array(
'section' => 'generate_backgrounds_body',
'settings' => array(
'repeat' => 'generate_background_settings[body_repeat]',
'size' => 'generate_background_settings[body_size]',
'attachment' => 'generate_background_settings[body_attachment]',
'position' => 'generate_background_settings[body_position]',
),
)
)
);
/**
* Top bar background
*/
$wp_customize->add_section(
'generate_backgrounds_top_bar',
array(
'title' => __( 'Top Bar', 'gp-premium' ),
'capability' => 'edit_theme_options',
'priority' => 5,
'panel' => 'generate_backgrounds_panel',
'active_callback' => 'generate_premium_is_top_bar_active',
)
);
$wp_customize->add_setting(
'generate_background_settings[top_bar_image]', array(
'default' => $defaults['top_bar_image'],
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'esc_url_raw',
)
);
$wp_customize->add_control(
new WP_Customize_Image_Control(
$wp_customize,
'generate_background_settings[top_bar_image]',
array(
'section' => 'generate_backgrounds_top_bar',
'settings' => 'generate_background_settings[top_bar_image]',
'label' => __( 'Top Bar', 'gp-premium' ),
)
)
);
$wp_customize->add_setting(
'generate_background_settings[top_bar_repeat]',
array(
'default' => $defaults['top_bar_repeat'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_setting(
'generate_background_settings[top_bar_size]',
array(
'default' => $defaults['top_bar_size'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_setting(
'generate_background_settings[top_bar_attachment]',
array(
'default' => $defaults['top_bar_attachment'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_setting(
'generate_background_settings[top_bar_position]', array(
'default' => $defaults['top_bar_position'],
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'esc_html',
)
);
$wp_customize->add_control(
new GeneratePress_Background_Images_Customize_Control(
$wp_customize,
'top_bar_backgrounds_control',
array(
'section' => 'generate_backgrounds_top_bar',
'settings' => array(
'repeat' => 'generate_background_settings[top_bar_repeat]',
'size' => 'generate_background_settings[top_bar_size]',
'attachment' => 'generate_background_settings[top_bar_attachment]',
'position' => 'generate_background_settings[top_bar_position]',
),
)
)
);
/**
* Header background
*/
$wp_customize->add_section(
'generate_backgrounds_header',
array(
'title' => __( 'Header', 'gp-premium' ),
'capability' => 'edit_theme_options',
'priority' => 10,
'panel' => 'generate_backgrounds_panel',
)
);
$wp_customize->add_control(
new GeneratePress_Section_Shortcut_Control(
$wp_customize,
'generate_header_background_image_shortcuts',
array(
'section' => 'generate_backgrounds_header',
'element' => __( 'Header', 'gp-premium' ),
'shortcuts' => array(
'layout' => 'generate_layout_header',
'colors' => 'header_color_section',
'typography' => 'font_header_section',
),
'settings' => ( isset( $wp_customize->selective_refresh ) ) ? array() : 'blogname',
'priority' => 1,
)
)
);
$wp_customize->add_setting(
'generate_background_settings[header_image]', array(
'default' => $defaults['header_image'],
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'esc_url_raw',
)
);
$wp_customize->add_control(
new WP_Customize_Image_Control(
$wp_customize,
'generate_backgrounds-header-image',
array(
'section' => 'generate_backgrounds_header',
'settings' => 'generate_background_settings[header_image]',
'label' => __( 'Header', 'gp-premium' ),
)
)
);
$wp_customize->add_setting(
'generate_background_settings[header_repeat]',
array(
'default' => $defaults['header_repeat'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_setting(
'generate_background_settings[header_size]',
array(
'default' => $defaults['header_size'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_setting(
'generate_background_settings[header_attachment]',
array(
'default' => $defaults['header_attachment'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_setting(
'generate_background_settings[header_position]', array(
'default' => $defaults['header_position'],
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'esc_html',
)
);
$wp_customize->add_control(
new GeneratePress_Background_Images_Customize_Control(
$wp_customize,
'header_backgrounds_control',
array(
'section' => 'generate_backgrounds_header',
'settings' => array(
'repeat' => 'generate_background_settings[header_repeat]',
'size' => 'generate_background_settings[header_size]',
'attachment' => 'generate_background_settings[header_attachment]',
'position' => 'generate_background_settings[header_position]',
),
)
)
);
$wp_customize->add_section(
'generate_backgrounds_navigation',
array(
'title' => __( 'Primary Navigation', 'gp-premium' ),
'capability' => 'edit_theme_options',
'priority' => 15,
'panel' => 'generate_backgrounds_panel',
)
);
$wp_customize->add_control(
new GeneratePress_Section_Shortcut_Control(
$wp_customize,
'generate_primary_navigation_background_image_shortcuts',
array(
'section' => 'generate_backgrounds_navigation',
'element' => __( 'Primary Navigation', 'gp-premium' ),
'shortcuts' => array(
'layout' => 'generate_layout_navigation',
'colors' => 'navigation_color_section',
'typography' => 'font_navigation_section',
),
'settings' => ( isset( $wp_customize->selective_refresh ) ) ? array() : 'blogname',
'priority' => 1,
)
)
);
/**
* Navigation background
*/
$wp_customize->add_setting(
'generate_background_settings[nav_image]', array(
'default' => $defaults['nav_image'],
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'esc_url_raw',
)
);
$wp_customize->add_control(
new WP_Customize_Image_Control(
$wp_customize,
'generate_background_settings[nav_image]',
array(
'section' => 'generate_backgrounds_navigation',
'settings' => 'generate_background_settings[nav_image]',
'priority' => 750,
'label' => __( 'Navigation', 'gp-premium' ),
)
)
);
$wp_customize->add_setting(
'generate_background_settings[nav_repeat]',
array(
'default' => $defaults['nav_repeat'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_control(
'generate_background_settings[nav_repeat]',
array(
'type' => 'select',
'section' => 'generate_backgrounds_navigation',
'choices' => array(
'' => __( 'Repeat', 'gp-premium' ),
'repeat-x' => __( 'Repeat x', 'gp-premium' ),
'repeat-y' => __( 'Repeat y', 'gp-premium' ),
'no-repeat' => __( 'No Repeat', 'gp-premium' ),
),
'settings' => 'generate_background_settings[nav_repeat]',
'priority' => 800,
)
);
/**
* Navigation item background
*/
$wp_customize->add_setting(
'generate_background_settings[nav_item_image]', array(
'default' => $defaults['nav_item_image'],
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'esc_url_raw',
)
);
$wp_customize->add_control(
new WP_Customize_Image_Control(
$wp_customize,
'generate_backgrounds-nav-item-image',
array(
'section' => 'generate_backgrounds_navigation',
'settings' => 'generate_background_settings[nav_item_image]',
'priority' => 950,
'label' => __( 'Navigation Item', 'gp-premium' ),
)
)
);
$wp_customize->add_setting(
'generate_background_settings[nav_item_repeat]',
array(
'default' => $defaults['nav_item_repeat'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_control(
'generate_background_settings[nav_item_repeat]',
array(
'type' => 'select',
'section' => 'generate_backgrounds_navigation',
'choices' => array(
'' => __( 'Repeat', 'gp-premium' ),
'repeat-x' => __( 'Repeat x', 'gp-premium' ),
'repeat-y' => __( 'Repeat y', 'gp-premium' ),
'no-repeat' => __( 'No Repeat', 'gp-premium' ),
),
'settings' => 'generate_background_settings[nav_item_repeat]',
'priority' => 1000,
)
);
/**
* Navigation item hover background
*/
$wp_customize->add_setting(
'generate_background_settings[nav_item_hover_image]', array(
'default' => $defaults['nav_item_hover_image'],
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'esc_url_raw',
)
);
$wp_customize->add_control(
new WP_Customize_Image_Control(
$wp_customize,
'generate_backgrounds-nav-item-hover-image',
array(
'section' => 'generate_backgrounds_navigation',
'settings' => 'generate_background_settings[nav_item_hover_image]',
'priority' => 1150,
'label' => __( 'Navigation Item Hover', 'gp-premium' ),
)
)
);
$wp_customize->add_setting(
'generate_background_settings[nav_item_hover_repeat]',
array(
'default' => $defaults['nav_item_hover_repeat'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_control(
'generate_background_settings[nav_item_hover_repeat]',
array(
'type' => 'select',
'section' => 'generate_backgrounds_navigation',
'choices' => array(
'' => __( 'Repeat', 'gp-premium' ),
'repeat-x' => __( 'Repeat x', 'gp-premium' ),
'repeat-y' => __( 'Repeat y', 'gp-premium' ),
'no-repeat' => __( 'No Repeat', 'gp-premium' ),
),
'settings' => 'generate_background_settings[nav_item_hover_repeat]',
'priority' => 1200,
)
);
/**
* Navigation item current background
*/
$wp_customize->add_setting(
'generate_background_settings[nav_item_current_image]', array(
'default' => $defaults['nav_item_current_image'],
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'esc_url_raw',
)
);
$wp_customize->add_control(
new WP_Customize_Image_Control(
$wp_customize,
'generate_backgrounds-nav-item-current-image',
array(
'section' => 'generate_backgrounds_navigation',
'settings' => 'generate_background_settings[nav_item_current_image]',
'priority' => 1350,
'label' => __( 'Navigation Item Current', 'gp-premium' ),
)
)
);
$wp_customize->add_setting(
'generate_background_settings[nav_item_current_repeat]',
array(
'default' => $defaults['nav_item_current_repeat'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_control(
'generate_background_settings[nav_item_current_repeat]',
array(
'type' => 'select',
'section' => 'generate_backgrounds_navigation',
'choices' => array(
'' => __( 'Repeat', 'gp-premium' ),
'repeat-x' => __( 'Repeat x', 'gp-premium' ),
'repeat-y' => __( 'Repeat y', 'gp-premium' ),
'no-repeat' => __( 'No Repeat', 'gp-premium' ),
),
'settings' => 'generate_background_settings[nav_item_current_repeat]',
'priority' => 1400,
)
);
$wp_customize->add_section(
'generate_backgrounds_subnavigation',
array(
'title' => __( 'Primary Sub-Navigation', 'gp-premium' ),
'capability' => 'edit_theme_options',
'priority' => 20,
'panel' => 'generate_backgrounds_panel',
)
);
/**
* Sub-Navigation item background
*/
$wp_customize->add_setting(
'generate_background_settings[sub_nav_item_image]', array(
'default' => $defaults['sub_nav_item_image'],
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'esc_url_raw',
)
);
$wp_customize->add_control(
new WP_Customize_Image_Control(
$wp_customize,
'generate_background_settings[sub_nav_item_image]',
array(
'section' => 'generate_backgrounds_subnavigation',
'settings' => 'generate_background_settings[sub_nav_item_image]',
'priority' => 1700,
'label' => __( 'Sub-Navigation Item', 'gp-premium' ),
)
)
);
$wp_customize->add_setting(
'generate_background_settings[sub_nav_item_repeat]',
array(
'default' => $defaults['sub_nav_item_repeat'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_control(
'generate_background_settings[sub_nav_item_repeat]',
array(
'type' => 'select',
'section' => 'generate_backgrounds_subnavigation',
'choices' => array(
'' => __( 'Repeat', 'gp-premium' ),
'repeat-x' => __( 'Repeat x', 'gp-premium' ),
'repeat-y' => __( 'Repeat y', 'gp-premium' ),
'no-repeat' => __( 'No Repeat', 'gp-premium' ),
),
'settings' => 'generate_background_settings[sub_nav_item_repeat]',
'priority' => 1800,
)
);
/**
* Sub-Navigation item hover background
*/
$wp_customize->add_setting(
'generate_background_settings[sub_nav_item_hover_image]', array(
'default' => $defaults['sub_nav_item_hover_image'],
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'esc_url_raw',
)
);
$wp_customize->add_control(
new WP_Customize_Image_Control(
$wp_customize,
'generate_background_settings[sub_nav_item_hover_image]',
array(
'section' => 'generate_backgrounds_subnavigation',
'settings' => 'generate_background_settings[sub_nav_item_hover_image]',
'priority' => 2000,
'label' => __( 'Sub-Navigation Item Hover', 'gp-premium' ),
)
)
);
$wp_customize->add_setting(
'generate_background_settings[sub_nav_item_hover_repeat]',
array(
'default' => $defaults['sub_nav_item_hover_repeat'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_control(
'generate_background_settings[sub_nav_item_hover_repeat]',
array(
'type' => 'select',
'section' => 'generate_backgrounds_subnavigation',
'choices' => array(
'' => __( 'Repeat', 'gp-premium' ),
'repeat-x' => __( 'Repeat x', 'gp-premium' ),
'repeat-y' => __( 'Repeat y', 'gp-premium' ),
'no-repeat' => __( 'No Repeat', 'gp-premium' ),
),
'settings' => 'generate_background_settings[sub_nav_item_hover_repeat]',
'priority' => 2100,
)
);
/**
* Sub-Navigation item current background
*/
$wp_customize->add_setting(
'generate_background_settings[sub_nav_item_current_image]', array(
'default' => $defaults['sub_nav_item_current_image'],
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'esc_url_raw',
)
);
$wp_customize->add_control(
new WP_Customize_Image_Control(
$wp_customize,
'generate_background_settings[sub_nav_item_current_image]',
array(
'section' => 'generate_backgrounds_subnavigation',
'settings' => 'generate_background_settings[sub_nav_item_current_image]',
'priority' => 2300,
'label' => __( 'Sub-Navigation Item Current', 'gp-premium' ),
)
)
);
$wp_customize->add_setting(
'generate_background_settings[sub_nav_item_current_repeat]',
array(
'default' => $defaults['sub_nav_item_current_repeat'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_control(
'generate_background_settings[sub_nav_item_current_repeat]',
array(
'type' => 'select',
'section' => 'generate_backgrounds_subnavigation',
'choices' => array(
'' => __( 'Repeat', 'gp-premium' ),
'repeat-x' => __( 'Repeat x', 'gp-premium' ),
'repeat-y' => __( 'Repeat y', 'gp-premium' ),
'no-repeat' => __( 'No Repeat', 'gp-premium' ),
),
'settings' => 'generate_background_settings[sub_nav_item_current_repeat]',
'priority' => 2400
)
);
$wp_customize->add_section(
'generate_backgrounds_content',
array(
'title' => __( 'Content', 'gp-premium' ),
'capability' => 'edit_theme_options',
'priority' => 25,
'panel' => 'generate_backgrounds_panel',
)
);
$wp_customize->add_control(
new GeneratePress_Section_Shortcut_Control(
$wp_customize,
'generate_content_background_image_shortcuts',
array(
'section' => 'generate_backgrounds_content',
'element' => __( 'Content', 'gp-premium' ),
'shortcuts' => array(
'colors' => 'content_color_section',
'typography' => 'font_section',
),
'settings' => ( isset( $wp_customize->selective_refresh ) ) ? array() : 'blogname',
'priority' => 1,
)
)
);
/**
* Content background
*/
$wp_customize->add_setting(
'generate_background_settings[content_image]', array(
'default' => $defaults['content_image'],
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'esc_url_raw',
)
);
$wp_customize->add_control(
new WP_Customize_Image_Control(
$wp_customize,
'generate_background_settings[content_image]',
array(
'section' => 'generate_backgrounds_content',
'settings' => 'generate_background_settings[content_image]',
'label' => __( 'Content', 'gp-premium' ),
)
)
);
$wp_customize->add_setting(
'generate_background_settings[content_repeat]',
array(
'default' => $defaults['content_repeat'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_setting(
'generate_background_settings[content_size]',
array(
'default' => $defaults['content_size'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_setting(
'generate_background_settings[content_attachment]',
array(
'default' => $defaults['content_attachment'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_setting(
'generate_background_settings[content_position]', array(
'default' => $defaults['content_position'],
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'esc_html',
)
);
$wp_customize->add_control(
new GeneratePress_Background_Images_Customize_Control(
$wp_customize,
'content_backgrounds_control',
array(
'section' => 'generate_backgrounds_content',
'settings' => array(
'repeat' => 'generate_background_settings[content_repeat]',
'size' => 'generate_background_settings[content_size]',
'attachment' => 'generate_background_settings[content_attachment]',
'position' => 'generate_background_settings[content_position]',
),
)
)
);
// Sidebars
$wp_customize->add_section(
'generate_backgrounds_sidebars',
array(
'title' => __( 'Sidebar', 'gp-premium' ),
'capability' => 'edit_theme_options',
'priority' => 25,
'panel' => 'generate_backgrounds_panel',
)
);
$wp_customize->add_control(
new GeneratePress_Section_Shortcut_Control(
$wp_customize,
'generate_sidebar_background_image_shortcuts',
array(
'section' => 'generate_backgrounds_sidebars',
'element' => __( 'Sidebar', 'gp-premium' ),
'shortcuts' => array(
'layout' => 'generate_layout_sidebars',
'colors' => 'sidebar_widget_color_section',
'typography' => 'font_widget_section',
),
'settings' => ( isset( $wp_customize->selective_refresh ) ) ? array() : 'blogname',
'priority' => 1,
)
)
);
$wp_customize->add_setting(
'generate_background_settings[sidebar_widget_image]', array(
'default' => $defaults['sidebar_widget_image'],
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'esc_url_raw',
)
);
$wp_customize->add_control(
new WP_Customize_Image_Control(
$wp_customize,
'generate_background_settings[sidebar_widget_image]',
array(
'section' => 'generate_backgrounds_sidebars',
'settings' => 'generate_background_settings[sidebar_widget_image]',
'label' => __( 'Sidebar Widgets', 'gp-premium' ),
)
)
);
$wp_customize->add_setting(
'generate_background_settings[sidebar_widget_repeat]',
array(
'default' => $defaults['sidebar_widget_repeat'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_setting(
'generate_background_settings[sidebar_widget_size]',
array(
'default' => $defaults['sidebar_widget_size'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_setting(
'generate_background_settings[sidebar_widget_attachment]',
array(
'default' => $defaults['sidebar_widget_attachment'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_setting(
'generate_background_settings[sidebar_widget_position]', array(
'default' => $defaults['sidebar_widget_position'],
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'esc_html',
)
);
$wp_customize->add_control(
new GeneratePress_Background_Images_Customize_Control(
$wp_customize,
'sidebar_backgrounds_control',
array(
'section' => 'generate_backgrounds_sidebars',
'settings' => array(
'repeat' => 'generate_background_settings[sidebar_widget_repeat]',
'size' => 'generate_background_settings[sidebar_widget_size]',
'attachment' => 'generate_background_settings[sidebar_widget_attachment]',
'position' => 'generate_background_settings[sidebar_widget_position]',
),
)
)
);
// Footer widgets
$wp_customize->add_section(
'generate_backgrounds_footer',
array(
'title' => __( 'Footer', 'gp-premium' ),
'capability' => 'edit_theme_options',
'priority' => 30,
'panel' => 'generate_backgrounds_panel',
)
);
$wp_customize->add_control(
new GeneratePress_Section_Shortcut_Control(
$wp_customize,
'generate_footer_background_image_shortcuts',
array(
'section' => 'generate_backgrounds_footer',
'element' => __( 'Footer', 'gp-premium' ),
'shortcuts' => array(
'layout' => 'generate_layout_footer',
'colors' => 'footer_color_section',
'typography' => 'font_footer_section',
),
'settings' => ( isset( $wp_customize->selective_refresh ) ) ? array() : 'blogname',
'priority' => 1,
)
)
);
$wp_customize->add_setting(
'generate_background_settings[footer_widget_image]',
array(
'default' => $defaults['footer_widget_image'],
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'esc_url_raw',
)
);
$wp_customize->add_control(
new WP_Customize_Image_Control(
$wp_customize,
'generate_background_settings[footer_widget_image]',
array(
'section' => 'generate_backgrounds_footer',
'settings' => 'generate_background_settings[footer_widget_image]',
'label' => __( 'Footer Widget Area', 'gp-premium' ),
)
)
);
$wp_customize->add_setting(
'generate_background_settings[footer_widget_repeat]',
array(
'default' => $defaults['footer_widget_repeat'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_setting(
'generate_background_settings[footer_widget_size]',
array(
'default' => $defaults['footer_widget_size'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_setting(
'generate_background_settings[footer_widget_attachment]',
array(
'default' => $defaults['footer_widget_attachment'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_setting(
'generate_background_settings[footer_widget_position]', array(
'default' => $defaults['footer_widget_position'],
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'esc_html',
)
);
$wp_customize->add_control(
new GeneratePress_Background_Images_Customize_Control(
$wp_customize,
'footer_widgets_backgrounds_control',
array(
'section' => 'generate_backgrounds_footer',
'settings' => array(
'repeat' => 'generate_background_settings[footer_widget_repeat]',
'size' => 'generate_background_settings[footer_widget_size]',
'attachment' => 'generate_background_settings[footer_widget_attachment]',
'position' => 'generate_background_settings[footer_widget_position]',
),
)
)
);
// Footer
$wp_customize->add_setting(
'generate_background_settings[footer_image]',
array(
'default' => $defaults['footer_image'],
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'esc_url_raw',
)
);
$wp_customize->add_control(
new WP_Customize_Image_Control(
$wp_customize,
'generate_backgrounds-footer-image',
array(
'section' => 'generate_backgrounds_footer',
'settings' => 'generate_background_settings[footer_image]',
'label' => __( 'Footer Area', 'gp-premium' ),
)
)
);
$wp_customize->add_setting(
'generate_background_settings[footer_repeat]',
array(
'default' => $defaults['footer_repeat'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_setting(
'generate_background_settings[footer_size]',
array(
'default' => $defaults['footer_size'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_setting(
'generate_background_settings[footer_attachment]',
array(
'default' => $defaults['footer_attachment'],
'type' => 'option',
'sanitize_callback' => 'sanitize_key',
)
);
$wp_customize->add_setting(
'generate_background_settings[footer_position]', array(
'default' => $defaults['footer_position'],
'type' => 'option',
'capability' => 'edit_theme_options',
'sanitize_callback' => 'esc_html',
)
);
$wp_customize->add_control(
new GeneratePress_Background_Images_Customize_Control(
$wp_customize,
'footer_backgrounds_control',
array(
'section' => 'generate_backgrounds_footer',
'settings' => array(
'repeat' => 'generate_background_settings[footer_repeat]',
'size' => 'generate_background_settings[footer_size]',
'attachment' => 'generate_background_settings[footer_attachment]',
'position' => 'generate_background_settings[footer_position]',
),
)
)
);
}
}
if ( ! function_exists( 'generate_backgrounds_css' ) ) {
/**
* Generate the CSS in the <head> section using the Theme Customizer
*
* @since 0.1
*/
function generate_backgrounds_css() {
$generate_settings = wp_parse_args(
get_option( 'generate_background_settings', array() ),
generate_get_background_defaults()
);
// Fix size values
// Spaces and % are stripped by sanitize_key
$generate_settings[ 'body_size' ] = ( '100' == $generate_settings[ 'body_size' ] ) ? '100% auto' : esc_attr( $generate_settings[ 'body_size' ] );
$generate_settings[ 'top_bar_size' ] = ( '100' == $generate_settings[ 'top_bar_size' ] ) ? '100% auto' : esc_attr( $generate_settings[ 'top_bar_size' ] );
$generate_settings[ 'header_size' ] = ( '100' == $generate_settings[ 'header_size' ] ) ? '100% auto' : esc_attr( $generate_settings[ 'header_size' ] );
$generate_settings[ 'content_size' ] = ( '100' == $generate_settings[ 'content_size' ] ) ? '100% auto' : esc_attr( $generate_settings[ 'content_size' ] );
$generate_settings[ 'sidebar_widget_size' ] = ( '100' == $generate_settings[ 'sidebar_widget_size' ] ) ? '100% auto' : esc_attr( $generate_settings[ 'sidebar_widget_size' ] );
$generate_settings[ 'footer_widget_size' ] = ( '100' == $generate_settings[ 'footer_widget_size' ] ) ? '100% auto' : esc_attr( $generate_settings[ 'footer_widget_size' ] );
$generate_settings[ 'footer_size' ] = ( '100' == $generate_settings[ 'footer_size' ] ) ? '100% auto' : esc_attr( $generate_settings[ 'footer_size' ] );
// Initiate our CSS class
$css = new GeneratePress_Backgrounds_CSS;
// Body
$css->set_selector( 'body' );
$css->add_property( 'background-image', esc_url( $generate_settings[ 'body_image' ] ), 'url' );
$css->add_property( 'background-repeat', esc_attr( $generate_settings[ 'body_repeat' ] ) );
$css->add_property( 'background-size', esc_attr( $generate_settings[ 'body_size' ] ) );
$css->add_property( 'background-attachment', esc_attr( $generate_settings[ 'body_attachment' ] ) );
$css->add_property( 'background-position', esc_attr( $generate_settings[ 'body_position' ] ) );
// Top bar
if ( is_active_sidebar( 'top-bar' ) ) {
$css->set_selector( '.top-bar' );
$css->add_property( 'background-image', esc_url( $generate_settings[ 'top_bar_image' ] ), 'url' );
$css->add_property( 'background-repeat', esc_attr( $generate_settings[ 'top_bar_repeat' ] ) );
$css->add_property( 'background-size', esc_attr( $generate_settings[ 'top_bar_size' ] ) );
$css->add_property( 'background-attachment', esc_attr( $generate_settings[ 'top_bar_attachment' ] ) );
$css->add_property( 'background-position', esc_attr( $generate_settings[ 'top_bar_position' ] ) );
}
// Header
$css->set_selector( '.site-header' );
$css->add_property( 'background-image', esc_url( $generate_settings[ 'header_image' ] ), 'url' );
$css->add_property( 'background-repeat', esc_attr( $generate_settings[ 'header_repeat' ] ) );
$css->add_property( 'background-size', esc_attr( $generate_settings[ 'header_size' ] ) );
$css->add_property( 'background-attachment', esc_attr( $generate_settings[ 'header_attachment' ] ) );
$css->add_property( 'background-position', esc_attr( $generate_settings[ 'header_position' ] ) );
// Navigation background
$css->set_selector( '.main-navigation,.menu-toggle' );
$css->add_property( 'background-image', esc_url( $generate_settings[ 'nav_image' ] ), 'url' );
$css->add_property( 'background-repeat', esc_attr( $generate_settings[ 'nav_repeat' ] ) );
// Navigation item background
$css->set_selector( '.main-navigation .main-nav > ul > li > a' );
$css->add_property( 'background-image', esc_url( $generate_settings[ 'nav_item_image' ] ), 'url' );
$css->add_property( 'background-repeat', esc_attr( $generate_settings[ 'nav_item_repeat' ] ) );
// Navigation background/text on hover
$css->set_selector( '.main-navigation .main-nav > ul > li > a:hover,.main-navigation .main-nav > ul > li.sfHover > a' );
$css->add_property( 'background-image', esc_url( $generate_settings[ 'nav_item_hover_image' ] ), 'url' );
$css->add_property( 'background-repeat', esc_attr( $generate_settings[ 'nav_item_hover_repeat' ] ) );
// Navigation background/text current
$css->set_selector( '.main-navigation .main-nav > ul > li[class*="current-menu-"] > a,.main-navigation .main-nav > ul > li[class*="current-menu-"] > a:hover,.main-navigation .main-nav > ul > li[class*="current-menu-"].sfHover > a' );
$css->add_property( 'background-image', esc_url( $generate_settings[ 'nav_item_current_image' ] ), 'url' );
$css->add_property( 'background-repeat', esc_attr( $generate_settings[ 'nav_item_current_repeat' ] ) );
// Sub-Navigation text
$css->set_selector( '.main-navigation ul ul li a' );
$css->add_property( 'background-image', esc_url( $generate_settings[ 'sub_nav_item_image' ] ), 'url' );
$css->add_property( 'background-repeat', esc_attr( $generate_settings[ 'sub_nav_item_repeat' ] ) );
// Sub-Navigation background/text on hover
$css->set_selector( '.main-navigation ul ul li > a:hover,.main-navigation ul ul li.sfHover > a' );
$css->add_property( 'background-image', esc_url( $generate_settings[ 'sub_nav_item_hover_image' ] ), 'url' );
$css->add_property( 'background-repeat', esc_attr( $generate_settings[ 'sub_nav_item_hover_repeat' ] ) );
// Sub-Navigation background / text current
$css->set_selector( '.main-navigation ul ul li[class*="current-menu-"] > a,.main-navigation ul ul li[class*="current-menu-"] > a:hover,.main-navigation ul ul li[class*="current-menu-"].sfHover > a' );
$css->add_property( 'background-image', esc_url( $generate_settings[ 'sub_nav_item_current_image' ] ), 'url' );
$css->add_property( 'background-repeat', esc_attr( $generate_settings[ 'sub_nav_item_current_repeat' ] ) );
// Content
$css->set_selector( '.separate-containers .inside-article,.separate-containers .comments-area,.separate-containers .page-header,.one-container .container,.separate-containers .paging-navigation,.separate-containers .inside-page-header' );
$css->add_property( 'background-image', esc_url( $generate_settings[ 'content_image' ] ), 'url' );
$css->add_property( 'background-repeat', esc_attr( $generate_settings[ 'content_repeat' ] ) );
$css->add_property( 'background-size', esc_attr( $generate_settings[ 'content_size' ] ) );
$css->add_property( 'background-attachment', esc_attr( $generate_settings[ 'content_attachment' ] ) );
$css->add_property( 'background-position', esc_attr( $generate_settings[ 'content_position' ] ) );
// Sidebar widget
$css->set_selector( '.sidebar .widget' );
$css->add_property( 'background-image', esc_url( $generate_settings[ 'sidebar_widget_image' ] ), 'url' );
$css->add_property( 'background-repeat', esc_attr( $generate_settings[ 'sidebar_widget_repeat' ] ) );
$css->add_property( 'background-size', esc_attr( $generate_settings[ 'sidebar_widget_size' ] ) );
$css->add_property( 'background-attachment', esc_attr( $generate_settings[ 'sidebar_widget_attachment' ] ) );
$css->add_property( 'background-position', esc_attr( $generate_settings[ 'sidebar_widget_position' ] ) );
// Footer widget
$css->set_selector( '.footer-widgets' );
$css->add_property( 'background-image', esc_url( $generate_settings[ 'footer_widget_image' ] ), 'url' );
$css->add_property( 'background-repeat', esc_attr( $generate_settings[ 'footer_widget_repeat' ] ) );
$css->add_property( 'background-size', esc_attr( $generate_settings[ 'footer_widget_size' ] ) );
$css->add_property( 'background-attachment', esc_attr( $generate_settings[ 'footer_widget_attachment' ] ) );
$css->add_property( 'background-position', esc_attr( $generate_settings[ 'footer_widget_position' ] ) );
// Footer
$css->set_selector( '.site-info' );
$css->add_property( 'background-image', esc_url( $generate_settings[ 'footer_image' ] ), 'url' );
$css->add_property( 'background-repeat', esc_attr( $generate_settings[ 'footer_repeat' ] ) );
$css->add_property( 'background-size', esc_attr( $generate_settings[ 'footer_size' ] ) );
$css->add_property( 'background-attachment', esc_attr( $generate_settings[ 'footer_attachment' ] ) );
$css->add_property( 'background-position', esc_attr( $generate_settings[ 'footer_position' ] ) );
// Return our dynamic CSS
return apply_filters( 'generate_backgrounds_css_output', $css->css_output() );
}
}
if ( ! function_exists( 'generate_background_scripts' ) ) {
add_action( 'wp_enqueue_scripts', 'generate_background_scripts', 70 );
/**
* Enqueue scripts and styles.
*
* @since 0.1
*/
function generate_background_scripts() {
wp_add_inline_style( 'generate-style', generate_backgrounds_css() );
}
}