true, 'margin-bottom' => 35, 'home-page-default' => 'default-home', 'home-demo-template' => 'home-panels.php', 'responsive' => siteorigin_setting( 'layout_responsive' ), ) ); // This theme uses wp_nav_menu() in one location. register_nav_menus( array( 'primary' => __( 'Primary Menu', 'vantage' ), ) ); /* * Enable support for Post Formats. * See https://developer.wordpress.org/themes/functionality/post-formats/ */ add_theme_support( 'post-formats', array( 'aside', 'gallery', 'link', 'image', 'quote', 'video', ) ); // Add support for WooCommerce add_theme_support( 'woocommerce' ); add_theme_support( 'wc-product-gallery-zoom' ); add_theme_support( 'wc-product-gallery-lightbox' ); add_theme_support( 'wc-product-gallery-slider' ); set_post_thumbnail_size( 720, 380, true ); add_image_size( 'vantage-thumbnail-no-sidebar', 1080, 380, true ); add_image_size( 'vantage-slide', 960, 480, true ); add_image_size( 'vantage-carousel', 272, 182, true ); add_image_size( 'vantage-grid-loop', 436, 272, true ); add_theme_support( 'custom-logo' ); add_theme_support( 'title-tag' ); add_theme_support( 'align-wide' ); if ( ! defined( 'SITEORIGIN_PANELS_VERSION' ) ) { // Only include panels lite if the panels plugin doesn't exist include get_template_directory() . '/inc/panels-lite/panels-lite.php'; } global $content_width, $vantage_site_width; if ( ! isset( $content_width ) ) $content_width = 720; /* pixels */ if ( ! isset( $vantage_site_width ) ) { $vantage_site_width = siteorigin_setting('layout_bound') == 'full' ? 1080 : 1010; } $container = 'content'; $render_function = ''; $wrapper = true; // The posts_per_page setting only works when type is 'scroll'. // When type is set to 'click' either explicitly or automatically, // due to there being footer widgets, it uses the "Blog pages show at most X posts" setting // under Settings > Reading instead. :( // https://wordpress.org/support/topic/posts_per_page-not-having-any-effect $posts_per_page = 7; if ( siteorigin_setting( 'blog_archive_layout' ) == 'circleicon' ) { $container = 'vantage-circleicon-loop'; $render_function = 'vantage_infinite_scroll_render'; $wrapper = false; $posts_per_page = 6; } else if ( siteorigin_setting( 'blog_archive_layout' ) == 'grid' ) { $container = 'vantage-grid-loop'; $render_function = 'vantage_infinite_scroll_render'; $wrapper = false; $posts_per_page = 8; } add_filter( 'infinite_scroll_settings', 'vantage_infinite_scroll_settings' ); // Allowing use of shortcodes in taxonomy descriptions. add_filter( 'term_description', 'shortcode_unautop'); add_filter( 'term_description', 'do_shortcode' ); add_theme_support( 'infinite-scroll', array( 'container' => $container, 'footer' => 'page', 'render' => $render_function, 'wrapper' => $wrapper, 'posts_per_page' => $posts_per_page, 'type' => 'click', // 'footer_widgets' => 'sidebar-footer', ) ); $mega_menu_active = function_exists( 'ubermenu' ) || ( function_exists( 'max_mega_menu_is_enabled' ) && max_mega_menu_is_enabled( 'primary' ) ); if ( siteorigin_setting( 'navigation_responsive_menu' ) && siteorigin_setting( 'layout_responsive' ) && ! $mega_menu_active ) { include get_template_directory() . '/inc/mobilenav/mobilenav.php'; } // We'll use template settings. add_theme_support( 'siteorigin-template-settings' ); } endif; // vantage_setup add_action( 'after_setup_theme', 'vantage_setup' ); if ( ! function_exists( 'vantage_premium_setup' ) ) : /** * Add support for premium theme components. */ function vantage_premium_setup() { // This theme supports the no attribution addon. add_theme_support( 'siteorigin-premium-no-attribution', array( 'filter' => 'vantage_footer_attribution', 'enabled' => siteorigin_setting( 'general_attribution' ), 'siteorigin_setting' => 'general_attribution' ) ); // This theme supports the ajax comments addon. add_theme_support( 'siteorigin-premium-ajax-comments', array( 'enabled' => siteorigin_setting( 'social_ajax_comments' ), 'siteorigin_setting' => 'social_ajax_comments' ) ); } endif; add_action( 'after_setup_theme', 'vantage_premium_setup' ); function vantage_siteorigin_css_snippets_paths( $paths ){ $paths[] = get_template_directory() . '/snippets/'; return $paths; } add_filter( 'siteorigin_css_snippet_paths', 'vantage_siteorigin_css_snippets_paths' ); if ( ! function_exists( 'vantage_infinite_scroll_settings' ) ) : // Override Jetpack Infinite Scroll default behaviour of ignoring explicit posts_per_page setting when type is 'click'. function vantage_infinite_scroll_settings( $settings ) { if ( $settings['type'] == 'click' ) { if ( siteorigin_setting( 'blog_archive_layout' ) == 'circleicon' ) { $settings['posts_per_page'] = 6; } elseif ( siteorigin_setting( 'blog_archive_layout' ) == 'grid' ) { $settings['posts_per_page'] = 8; } } return $settings; } endif; if ( ! function_exists( 'vantage_infinite_scroll_render' ) ) : function vantage_infinite_scroll_render() { ob_start(); get_template_part( 'loops/loop', siteorigin_setting( 'blog_archive_layout' ) ); $var = ob_get_clean(); // Strip leading and trailing whitespace. $var = trim( $var ); // Remove the opening and closing div tags for subsequent pages of posts for correct circleicon and grid layouts. $var = preg_replace( '/^/', '', $var ); $var = preg_replace( '/<\/div>$/', '', $var ); echo $var; } endif; if ( ! function_exists( 'vantage_is_woocommerce_active' ) ) : /** * Check that WooCommerce is active * * @return bool */ function vantage_is_woocommerce_active() { return in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ); } endif; if ( ! function_exists( 'vantage_register_custom_background' ) ) : /** * Setup the WordPress core custom background feature. * * @since vantage 1.0 */ function vantage_register_custom_background() { if ( siteorigin_setting( 'layout_bound' ) == 'boxed') { $args = array( 'default-color' => 'e8e8e8', 'default-image' => '', ); $args = apply_filters( 'vantage_custom_background_args', $args ); add_theme_support( 'custom-background', $args ); } } endif; add_action( 'after_setup_theme', 'vantage_register_custom_background' ); if ( ! function_exists('vantage_widgets_init') ) : /** * Register widgetized area and update sidebar with default widgets * * @since vantage 1.0 */ function vantage_widgets_init() { register_sidebar( array( 'name' => __( 'Sidebar', 'vantage' ), 'id' => 'sidebar-1', 'description' => __( 'Displays to the right or left of the content area.', 'vantage' ), 'before_widget' => '', 'before_title' => '

', 'after_title' => '

', ) ); if( vantage_is_woocommerce_active() ) { register_sidebar( array( 'name' => __( 'Shop', 'vantage' ), 'id' => 'shop', 'description' => __( 'Displays on WooCommerce pages.', 'vantage' ), 'before_widget' => '', 'before_title' => '

', 'after_title' => '

', ) ); } register_sidebar( array( 'name' => __( 'Footer', 'vantage' ), 'id' => 'sidebar-footer', 'description' => __( 'Displays below the content area.', 'vantage' ), 'before_widget' => '', 'before_title' => '

', 'after_title' => '

', ) ); register_sidebar( array( 'name' => __( 'Header', 'vantage' ), 'id' => 'sidebar-header', 'description' => __( 'Displays to the right of the logo.', 'vantage' ), 'before_widget' => '', 'before_title' => '

', 'after_title' => '

', ) ); register_sidebar( array( 'name' => __( 'Masthead', 'vantage' ), 'id' => 'sidebar-masthead', 'description' => __( 'Replaces the logo and header widget area.', 'vantage' ), 'before_widget' => '', 'before_title' => '

', 'after_title' => '

', ) ); } endif; add_action( 'widgets_init', 'vantage_widgets_init' ); if ( ! function_exists( 'vantage_print_styles' ) ) : /** * Print all the necessary Vantage styles in the header. */ function vantage_print_styles() { if ( ! siteorigin_setting( 'layout_responsive' ) ) return; // Create the footer and masthead widget CSS $sidebars_widgets = wp_get_sidebars_widgets(); $footer_count = isset( $sidebars_widgets['sidebar-footer'] ) ? count( $sidebars_widgets['sidebar-footer'] ) : 1; $footer_count = max( $footer_count, 1 ); $masthead_count = isset( $sidebars_widgets['sidebar-masthead'] ) ? count( $sidebars_widgets['sidebar-masthead'] ) : 1; $masthead_count = max( $masthead_count, 1 ); ?> query_vars; foreach( $vars as $k => $v ) { if(empty($vars[$k])) unset ($vars[$k]); } unset( $vars['update_post_term_cache'] ); unset( $vars['update_post_meta_cache'] ); unset( $vars['cache_results'] ); unset( $vars['comments_per_page'] ); return $vars; } endif; if ( ! function_exists( 'vantage_render_slider' ) ) : /** * Render the slider. */ function vantage_render_slider() { if ( is_front_page() && ! in_array( siteorigin_setting( 'home_slider' ), array( '', 'none' ) ) ) { $settings_slider = siteorigin_setting( 'home_slider' ); $slider_stretch = siteorigin_setting( 'home_slider_stretch' ); $slider = false; // Check if we should show demo slider or not. if ( siteorigin_setting( 'home_slider' ) == 'demo' ) { $slider = 'demo'; } elseif ( ! empty( $settings_slider ) ) { $slider = $settings_slider; } } else { $page_id = get_the_ID(); $is_wc_shop = vantage_is_woocommerce_active() && is_woocommerce() && is_shop(); if ( $is_wc_shop ) { $page_id = wc_get_page_id( 'shop' ); } if ( is_home() ) { $page_id = get_queried_object_id(); } if ( ( is_page() || $is_wc_shop || is_home() ) && get_post_meta( $page_id, 'vantage_metaslider_slider', true ) != 'none' ) { $page_slider = get_post_meta( $page_id, 'vantage_metaslider_slider', true ); if ( ! empty( $page_slider ) ) { $slider = $page_slider; } $slider_stretch = get_post_meta( $page_id, 'vantage_metaslider_slider_stretch', true ); } } if ( empty( $slider ) ) return; global $vantage_is_main_slider; $vantage_is_main_slider = true; if ( $slider == 'demo' ) { ?>
>
__('SiteOrigin Page Builder', 'vantage'), 'slug' => 'siteorigin-panels', 'required' => false, ), array( 'name' => __('SiteOrigin Widgets Bundle', 'vantage'), 'slug' => 'so-widgets-bundle', 'required' => false, ), array( 'name' => __('SiteOrigin CSS', 'vantage'), 'slug' => 'so-css', 'required' => false, ), ); $config = array( 'id' => 'tgmpa-vantage', // Unique ID for hashing notices for multiple instances of TGMPA. 'menu' => 'tgmpa-install-plugins', // Menu slug. 'parent_slug' => 'themes.php', // Parent menu slug. 'capability' => 'edit_theme_options', // Capability needed to view plugin install page, should be a capability associated with the parent menu used. 'has_notices' => true, // Show admin notices or not. 'dismissable' => true, // If false, a user cannot dismiss the nag message. 'dismiss_msg' => '', // If 'dismissable' is false, this message will be output at top of nag. 'is_automatic' => false, // Automatically activate plugins after installation or not. 'message' => '', // Message to output right before the plugins table. ); tgmpa( $plugins, $config ); } add_action( 'tgmpa_register', 'vantage_recommended_plugins' );