/**
* Theme Functions
*
* @package Wpisset Framework
*/
// exit if accessed directly
if ( ! defined( 'ABSPATH' ) ) exit;
//remove_theme_mods();
// Constants
define( 'WPISSET_THEME_DIR', get_template_directory() );
define( 'WPISSET_THEME_URI', get_template_directory_uri() );
define( 'WPISSET_CHILD_THEME_DIR', get_stylesheet_directory() );
define( 'WPISSET_CHILD_THEME_URI', get_stylesheet_directory_uri() );
define( 'WPISSET_VERSION', wp_get_theme( 'hailey' )->get('Version') );
define( 'WPISSET_CHILD_VERSION', wp_get_theme( 'wpisset-child' )->get('Version') );
// Theme Setup
add_action('after_setup_theme', 'wpisset_theme_setup');
function wpisset_theme_setup() {
// Textdomain
load_theme_textdomain( 'hailey', get_template_directory() . '/languages' );
// Custom Logo
add_theme_support( 'custom-logo',
array(
'width' => 180,
'height' => 48,
'flex-width' => true,
'flex-height' => true,
)
);
// Custom Background
add_theme_support( 'custom-background',
array(
'default-color' => 'ffffff',
'default-image' => '',
'default-repeat' => 'repeat',
'default-position-x' => 'left',
'default-position-y' => 'top',
'default-size' => 'auto',
'default-attachment' => 'scroll',
)
);
// Title Tag
add_theme_support( 'title-tag' );
// Post Thumbnails
add_theme_support( 'post-thumbnails' );
// Automatic Feed Links
add_theme_support( 'automatic-feed-links' ).
// HTML5 Support
add_theme_support( 'html5', array( 'comment-list', 'comment-form', 'gallery', 'caption' ) );
// Post Formats
add_theme_support( 'post-formats', array( 'image', 'video', 'quote', 'link', 'gallery', 'audio' ) );
// Selective Refresh for Widgets
add_theme_support( 'customize-selective-refresh-widgets' );
// 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' );
register_nav_menus( array(
'main_menu' => __( 'Main Menu', 'hailey'),
'mobile_menu' => __( 'Mobile Menu', 'hailey'),
'footer_menu' => __( 'Footer Left', 'hailey'),
'footer_menu_right' => __( 'Footer Right', 'hailey'),
'extra_menu' => __( 'Extra Menu', 'hailey')
) );
}
// Content Width
if ( ! isset( $content_width ) ) {
$content_width = 760;
}
// Sidebar
add_action( 'widgets_init', 'wpisset_sidebars' );
function wpisset_sidebars() {
register_sidebar( array(
'name' => __( 'Sidebar', 'hailey'),
'id' => 'sidebar-1',
'before_widget' => '
',
'after_widget' => '
',
'before_title' => ''
) );
register_sidebar( array(
'name' => __( 'Footer Column 1', 'hailey'),
'id' => 'footer-column-1',
'before_widget' => '',
'after_widget' => '
',
'before_title' => ''
) );
register_sidebar( array(
'name' => __( 'Footer Column 2', 'hailey'),
'id' => 'footer-column-2',
'before_widget' => '',
'after_widget' => '
',
'before_title' => ''
) );
register_sidebar( array(
'name' => __( 'Footer Column 3', 'hailey'),
'id' => 'footer-column-3',
'before_widget' => '',
'after_widget' => '
',
'before_title' => ''
) );
register_sidebar( array(
'name' => __( 'Footer Column 4', 'hailey'),
'id' => 'footer-column-4',
'before_widget' => '',
'after_widget' => '
',
'before_title' => ''
) );
register_sidebar( array(
'name' => __( 'Footer Column 5', 'hailey'),
'id' => 'footer-column-5',
'before_widget' => '',
'after_widget' => '
',
'before_title' => ''
) );
register_sidebar( array(
'name' => __( 'Footer Column 6', 'hailey'),
'id' => 'footer-column-6',
'before_widget' => '',
'after_widget' => '
',
'before_title' => ''
) );
}
// Sidebars fix (no hook is being used for update_option to fire immediately)
$wpisset_current_sidebars = get_option( 'sidebars_widgets' );
if( !empty( $wpisset_current_sidebars['wpisset-sidebar'] ) ) {
$wpisset_new_sidebars = $wpisset_current_sidebars;
$wpisset_new_sidebars['sidebar-1'] = $wpisset_new_sidebars['wpisset-sidebar'];
unset( $wpisset_new_sidebars['wpisset-sidebar'] );
update_option( 'sidebars_widgets', $wpisset_new_sidebars );
}
// Menu's
add_filter( 'wpisset_menu_position', function( $choices ) {
$choices['menu-stacked-advanced'] = esc_attr__( 'Stacked (advanced)', 'hailey' );
return $choices;
});
function wpisset_admin_style() {
wp_enqueue_style( 'wpisset-admin-style', get_template_directory_uri() . '/css/admin-style.css', '', WPISSET_VERSION );
}
add_action( 'admin_enqueue_scripts', 'wpisset_admin_style');
// Styles & Scripts
add_action( 'wp_enqueue_scripts', 'wpisset_scripts', 10 );
function wpisset_scripts() {
// site.js
wp_enqueue_script( 'wpisset-site', get_template_directory_uri() . '/js/site.js', array( 'jquery' ), WPISSET_VERSION, true );
if( ! get_theme_mod( 'mobile_menu_options' ) || get_theme_mod( 'mobile_menu_options' ) == 'menu-mobile-hamburger' ) {
// hamburger
wp_enqueue_script( 'wpisset-mobile-menu-hamburger', get_template_directory_uri() . '/js/mobile-hamburger.js', array( 'jquery', 'wpisset-site' ), WPISSET_VERSION, true );
} elseif( get_theme_mod( 'mobile_menu_options' ) == 'menu-mobile-default' ) {
// default
wp_enqueue_script( 'wpisset-mobile-menu-default', get_template_directory_uri() . '/js/mobile-default.js', array( 'jquery', 'wpisset-site' ), WPISSET_VERSION, true );
}
// style.css
wp_enqueue_style( 'wpisset-style', get_template_directory_uri() . '/css/application.css', '', WPISSET_VERSION );
// responsive.css
wp_enqueue_style( 'wpisset-responsive', get_template_directory_uri() . '/css/responsive.css', '', WPISSET_VERSION );
if ( is_singular() ) wp_enqueue_script( 'comment-reply' );
if ( is_rtl() ) {
wp_enqueue_style( 'wpisset-rtl', get_template_directory_uri() . '/css/rtl.css', '', WPISSET_VERSION );
}
if ( get_theme_mod( 'menu_sticky' ) ) {
// sticky navigation
wp_enqueue_script( 'wpisset-sticky-navigation', WPISSET_THEME_URI . '/js/sticky-navigation.js', array(
'jquery',
'wpisset-site'
), WPISSET_VERSION, true );
}
if ( in_array( get_theme_mod( 'menu_position' ), [ 'menu-off-canvas', 'menu-off-canvas-left' ] ) ) {
// off canvas
wp_enqueue_script( 'wpisset-menu-off-canvas', WPISSET_THEME_URI . '/js/off-canvas.js', array(
'jquery',
'wpisset-site'
), WPISSET_VERSION, true );
}
if ( get_theme_mod( 'menu_position' ) == 'menu-full-screen' ) {
// full screen
wp_enqueue_script( 'wpisset-menu-full-screen', WPISSET_THEME_URI . '/js/full-screen.js', array(
'jquery',
'wpisset-site'
), WPISSET_VERSION, true );
}
if ( get_theme_mod( 'mobile_menu_options' ) == 'menu-mobile-off-canvas' ) {
// full screen
wp_enqueue_script( 'wpisset-mobile-menu-off-canvas', WPISSET_THEME_URI . '/js/mobile-off-canvas.js', array(
'jquery',
'wpisset-site'
), WPISSET_VERSION, true );
}
if ( in_array( get_theme_mod( 'sub_menu_animation' ), [ 'zoom-in', 'zoom-out' ] ) ) {
// jQuery Transit
wp_enqueue_script( 'wpisset-sub-menu-animation', WPISSET_THEME_URI . '/js/jquery.transit.min.js', array(
'jquery',
'wpisset-site'
), '0.9.12', true );
}
// WooCommerce
if ( class_exists( 'WooCommerce' ) ) {
// woocommerce
wp_enqueue_style( 'wpisset-woocommerce', get_template_directory_uri() . '/css/woocommerce.css', '', WPISSET_VERSION );
wp_enqueue_script( 'wpisset-woocommerce', WPISSET_THEME_URI . '/js/woocommerce.js', array( 'jquery' ), WPISSET_VERSION, true );
wp_localize_script( 'wpisset-woocommerce', 'wpisset_woo_quick_view', array(
'ajax_url' => admin_url( 'admin-ajax.php' ),
'cart_error_text' => __( 'Please select %variationName%', 'hailey' )
) );
}
}
// Init
require_once( WPISSET_THEME_DIR . '/inc/init.php' );