'', '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 * * @param object $wp_customize The Customizer object. */ function generate_backgrounds_customize( $wp_customize ) { $defaults = generate_get_background_defaults(); require_once GP_LIBRARY_DIRECTORY . 'customizer-helpers.php'; 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' ); } 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]', ), ) ) ); $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]', ), ) ) ); $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]', ), ) ) ); $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 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'] ); // phpcs:ignore -- Non-strict comparison ok. $generate_settings['top_bar_size'] = ( '100' == $generate_settings['top_bar_size'] ) ? '100% auto' : esc_attr( $generate_settings['top_bar_size'] ); // phpcs:ignore -- Non-strict comparison ok. $generate_settings['header_size'] = ( '100' == $generate_settings['header_size'] ) ? '100% auto' : esc_attr( $generate_settings['header_size'] ); // phpcs:ignore -- Non-strict comparison ok. $generate_settings['content_size'] = ( '100' == $generate_settings['content_size'] ) ? '100% auto' : esc_attr( $generate_settings['content_size'] ); // phpcs:ignore -- Non-strict comparison ok. $generate_settings['sidebar_widget_size'] = ( '100' == $generate_settings['sidebar_widget_size'] ) ? '100% auto' : esc_attr( $generate_settings['sidebar_widget_size'] ); // phpcs:ignore -- Non-strict comparison ok. $generate_settings['footer_widget_size'] = ( '100' == $generate_settings['footer_widget_size'] ) ? '100% auto' : esc_attr( $generate_settings['footer_widget_size'] ); // phpcs:ignore -- Non-strict comparison ok. $generate_settings['footer_size'] = ( '100' == $generate_settings['footer_size'] ) ? '100% auto' : esc_attr( $generate_settings['footer_size'] ); // phpcs:ignore -- Non-strict comparison ok. $css = new GeneratePress_Backgrounds_CSS(); $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'] ) ); 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'] ) ); } $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'] ) ); $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'] ) ); $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'] ) ); $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'] ) ); $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'] ) ); $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'] ) ); $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'] ) ); $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'] ) ); $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'] ) ); $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'] ) ); $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'] ) ); $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 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() { if ( 'inline' === generate_get_css_print_method() ) { wp_add_inline_style( 'generate-style', generate_backgrounds_css() ); } } } add_filter( 'generate_external_dynamic_css_output', 'generate_backgrounds_add_external_css' ); /** * Add to external stylesheet. * * @since 1.11.0 * * @param string $css Existing CSS. */ function generate_backgrounds_add_external_css( $css ) { if ( 'inline' === generate_get_css_print_method() ) { return $css; } $css .= generate_backgrounds_css(); return $css; }