File: /home/hcb48/public_html/wp-content/themes/flatsome/inc/functions/function-setup.php
<?php
if ( ! isset( $content_width ) ) $content_width = 1020; /* pixels */
function flatsome_setup() {
/* add woocommerce support */
add_theme_support( 'woocommerce' );
/* add title tag support */
add_theme_support( 'title-tag' );
/* Load child theme languages */
load_theme_textdomain( 'flatsome', get_stylesheet_directory() . '/languages' );
/* load theme languages */
load_theme_textdomain( 'flatsome', get_template_directory() . '/languages' );
/* Add default posts and comments RSS feed links to head */
add_theme_support( 'automatic-feed-links' );
/* Add excerpt to pages */
add_post_type_support( 'page', 'excerpt' );
/* Add support for post thumbnails */
add_theme_support( 'post-thumbnails' );
/* Add support for Selective Widget refresh */
add_theme_support( 'customize-selective-refresh-widgets' );
/** Add sensei support */
add_theme_support( 'sensei' );
/* Add support for HTML5 */
add_theme_support( 'html5', array(
'search-form',
'comment-form',
'comment-list',
'gallery',
'caption',
'widgets',
) );
/* Registrer menus. */
register_nav_menus( array(
'primary' => __( 'Main Menu', 'flatsome' ),
'primary_mobile' => __( 'Main Menu - Mobile', 'flatsome' ),
'footer' => __( 'Footer Menu', 'flatsome' ),
'top_bar_nav' => __( 'Top Bar Menu', 'flatsome' ),
'my_account' => __( 'My Account Menu', 'flatsome' ),
) );
/* Enable support for Post Formats */
add_theme_support( 'post-formats', array( 'video' ) );
}
add_action( 'after_setup_theme', 'flatsome_setup' );
/* Setup Theme Widgets */
function flatsome_widgets_init() {
$title_before = '';
$title_class = '';
$title_after = '<div class="is-divider small"></div>';
register_sidebar( array(
'name' => __( 'Sidebar', 'flatsome' ),
'id' => 'sidebar-main',
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => '</aside>',
'before_title' => $title_before.'<span class="widget-title '.$title_class.'"><span>',
'after_title' => '</span></span>'.$title_after,
) );
register_sidebar( array(
'name' => __( 'Footer 1', 'flatsome' ),
'id' => 'sidebar-footer-1',
'before_widget' => '<div id="%1$s" class="col pb-0 widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<span class="widget-title">',
'after_title' => '</span><div class="is-divider small"></div>',
) );
register_sidebar( array(
'name' => __( 'Footer 2', 'flatsome' ),
'id' => 'sidebar-footer-2',
'before_widget' => '<div id="%1$s" class="col pb-0 widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<span class="widget-title">',
'after_title' => '</span><div class="is-divider small"></div>',
) );
}
add_action( 'widgets_init', 'flatsome_widgets_init' );
/**
* Setup Flatsome Styles and Scripts
*/
function flatsome_scripts() {
$uri = get_template_directory_uri();
$theme = wp_get_theme( get_template() );
$version = $theme->get( 'Version' );
// Styles
if(!is_rtl()){
wp_enqueue_style( 'flatsome-main', $uri .'/assets/css/flatsome.css', array(), $version, 'all' );
} else {
wp_enqueue_style( 'flatsome-main-rtl', $uri .'/assets/css/flatsome-rtl.css', array(), $version, 'all' );
}
if(is_woocommerce_activated() && !is_rtl()){
wp_enqueue_style( 'flatsome-shop', $uri .'/assets/css/flatsome-shop.css', array(), $version, 'all' );
} else if(is_woocommerce_activated()){
wp_enqueue_style( 'flatsome-shop-rtl', $uri .'/assets/css/flatsome-shop-rtl.css', array(), $version, 'all' );
}
// Load current theme styles.css file.
wp_enqueue_style( 'flatsome-style', get_stylesheet_uri(), array(), $version, 'all');
// Register styles (Loaded on request)
wp_register_style( 'flatsome-effects', $uri .'/assets/css/effects.css', array(), $version, 'all' );
// Register scripts (Loaded on request)
wp_register_script( 'flatsome-masonry-js', $uri .'/assets/libs/packery.pkgd.min.js', array( 'jquery' ), $version, true );
wp_register_script( 'flatsome-isotope-js', $uri .'/assets/libs/isotope.pkgd.min.js', array( 'jquery' ), $version, true );
// Google maps
$maps_api = get_theme_mod('google_map_api');
wp_register_script( 'flatsome-maps', '//maps.googleapis.com/maps/api/js?key='.$maps_api, array( 'jquery' ), $version, true );
// Enqueue theme scripts
wp_enqueue_script( 'flatsome-js', $uri .'/assets/js/flatsome.js', array(
'jquery',
'hoverIntent',
), $version, true );
$sticky_height = get_theme_mod('header_height_sticky', 70);
if(is_admin_bar_showing()) $sticky_height = $sticky_height + 30;
// Add variables to scripts
wp_localize_script( 'flatsome-js', 'flatsomeVars',
array(
'ajaxurl' => admin_url( 'admin-ajax.php' ),
'rtl' => is_rtl(),
'sticky_height' => $sticky_height,
'user' => array(
'can_edit_pages' => current_user_can( 'edit_pages' ),
)
)
);
if ( is_woocommerce_activated() ) {
wp_enqueue_script( 'flatsome-theme-woocommerce-js', $uri .'/assets/js/woocommerce.js', array( 'flatsome-js' ), $version, true );
}
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}
}
add_action( 'wp_enqueue_scripts', 'flatsome_scripts', 100 );
/**
* Set up UX Builder.
*/
function flatsome_ux_builder_setup() {
// Add Ux Builder to post types.
add_ux_builder_post_type( 'blocks' );
add_ux_builder_post_type( 'product' );
add_ux_builder_post_type( 'featured_item' );
}
add_action( 'init', 'flatsome_ux_builder_setup', 10 );
/**
* Enqueue UX Builder scripts.
*
* @param string $context Context is «editor» or content
*/
function flatsome_ux_builder_scripts( $context ) {
$uri = get_template_directory_uri();
$theme = wp_get_theme( get_template() );
$version = $theme->get( 'Version' );
// Add UxBuilder assets.
if ( $context == 'editor' ) {
wp_enqueue_script( 'ux-builder-flatsome', $uri .'/assets/js/builder/custom/editor.js', null, $version, true );
wp_enqueue_style( 'ux-builder-flatsome', $uri .'/assets/css/builder/custom/builder.css', null, $version );
}
if ( $context == 'content' ) {
wp_enqueue_style( 'ux-builder-flatsome', $uri .'/assets/css/builder/custom/builder.css', null, $version );
wp_enqueue_script( 'ux-builder-flatsome', $uri .'/assets/js/builder/custom/content.js', array(
'flatsome-js',
'flatsome-masonry-js'
), $version, true );
}
}
add_action( 'ux_builder_enqueue_scripts', 'flatsome_ux_builder_scripts', 10 );
// Lazy load backgrounds.
if(!is_admin() && get_theme_mod('lazy_load_backgrounds', 1)){
function flatsome_lazy_load_backgrounds_css() {
echo '<style>.bg{opacity: 0; transition: opacity 1s; -webkit-transition: opacity 1s;} .bg-loaded{opacity: 1;}</style>';
}
add_filter('wp_head', 'flatsome_lazy_load_backgrounds_css');
}