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' => '',
) );
if( vantage_is_woocommerce_active() ) {
register_sidebar( array(
'name' => __( 'Shop', 'vantage' ),
'id' => 'shop',
'description' => __( 'Displays on WooCommerce pages.', 'vantage' ),
'before_widget' => '',
'before_title' => '',
) );
}
register_sidebar( array(
'name' => __( 'Footer', 'vantage' ),
'id' => 'sidebar-footer',
'description' => __( 'Displays below the content area.', 'vantage' ),
'before_widget' => '',
'before_title' => '',
) );
register_sidebar( array(
'name' => __( 'Header', 'vantage' ),
'id' => 'sidebar-header',
'description' => __( 'Displays to the right of the logo.', 'vantage' ),
'before_widget' => '',
'before_title' => '',
) );
register_sidebar( array(
'name' => __( 'Masthead', 'vantage' ),
'id' => 'sidebar-masthead',
'description' => __( 'Replaces the logo and header widget area.', 'vantage' ),
'before_widget' => '',
'before_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' );