/home/arranoyd/otours/wp-content/themes/leadengine/core/init.php
<?php
// ------------------------------------------------------------------------
// Add Redux Framework & extras
// ------------------------------------------------------------------------
$redux_ThemeTek = get_option( 'redux_ThemeTek' );
define( 'KEYDESIGN_THEME_PATH', get_template_directory() );
define( 'KEYDESIGN_THEME_PLUGINS_DIR', KEYDESIGN_THEME_PATH . '/plugins' );
// ------------------------------------------------------------------------
// Theme includes
// ------------------------------------------------------------------------
// Wordpress Bootstrap Menu
require_once( get_template_directory() . '/core/assets/extra/wp_bootstrap_navwalker.php');
// ------------------------------------------------------------------------
// WooCommerce
// ------------------------------------------------------------------------
if( class_exists( 'WooCommerce' )) {
add_theme_support( 'woocommerce' );
}
if( class_exists( 'WooCommerce' )) {
require_once( get_template_directory() . '/core/theme-woocommerce.php' );
}
// ------------------------------------------------------------------------
// Enqueue scripts and styles front and admin
// ------------------------------------------------------------------------
if( !function_exists('keydesign_enqueue_front') ) {
function keydesign_enqueue_front() {
$redux_ThemeTek = get_option( 'redux_ThemeTek' );
// Bootstrap CSS
wp_enqueue_style( 'bootstrap', get_template_directory_uri() . '/core/assets/css/bootstrap.min.css', '', '' );
// Theme main style CSS
wp_enqueue_style( 'keydesign-style', get_stylesheet_uri() );
// Font Awesome
wp_enqueue_style( 'font-awesome', get_template_directory_uri() . '/core/assets/css/font-awesome.min.css', '', '' );
// Iconsmind
wp_enqueue_style( 'kd_iconsmind', get_template_directory_uri() . '/core/assets/css/iconsmind.min.css', '', '' );
wp_enqueue_style( 'keydesign_default_fonts', keydesign_default_fonts_url(), array(), '' );
// Bootstrap JS
wp_enqueue_script( 'bootstrapjs', get_template_directory_uri() . '/core/assets/js/bootstrap.min.js', array('jquery'), '', true );
// Masonry
if( is_front_page() || is_page_template('portfolio.php') ) {
wp_enqueue_script( 'masonry' );
}
if( is_singular( 'portfolio' ) ) {
wp_enqueue_style( 'photoswipe', get_template_directory_uri() . '/core/assets/css/photoswipe.css', '', '' );
wp_enqueue_style( 'photoswipe-skin', get_template_directory_uri() . '/core/assets/css/photoswipe-default-skin.css', '', '' );
wp_enqueue_script( 'photoswipejs', get_template_directory_uri() . '/core/assets/js/photoswipe.min.js', array('jquery'), '', true );
wp_enqueue_script( 'photoswipejs-ui', get_template_directory_uri() . '/core/assets/js/photoswipe-ui-default.min.js', array('jquery'), '', true );
}
// Theme main scripts
wp_enqueue_script( 'keydesign-scripts', get_template_directory_uri() . '/core/assets/js/scripts.js', array(), '', true );
// Particles
wp_register_script( 'particles', get_template_directory_uri() . '/core/assets/js/particles.min.js', array(), '', true );
$themetek_page_particles = get_post_meta( get_the_ID(), '_themetek_page_particles', true );
if ( !isset($redux_ThemeTek['tek-blog-particles']) ) { $redux_ThemeTek['tek-blog-particles'] = false; }
if( is_home() && $redux_ThemeTek['tek-blog-particles'] != false || !empty($themetek_page_particles)) {
wp_enqueue_script( 'particles' );
}
// Visual composer - move styles to head
wp_enqueue_style( 'js_composer_front' );
wp_enqueue_style( 'js_composer_custom_css' );
}
}
add_action( 'wp_enqueue_scripts', 'keydesign_enqueue_front' );
// ------------------------------------------------------------------------
// bbPress
// ------------------------------------------------------------------------
function kd_bbpress_css_enqueue(){
if( function_exists( 'is_bbpress' ) ) {
// Deregister default bbPress CSS
wp_deregister_style( 'bbp-default' );
$file = 'core/assets/css/bbpress.css';
// Check child theme
if ( file_exists( trailingslashit( get_stylesheet_directory() ) . $file ) ) {
$location = trailingslashit( get_stylesheet_directory_uri() );
$handle = 'bbp-child-bbpress';
// Check parent theme
} elseif ( file_exists( trailingslashit( get_template_directory() ) . $file ) ) {
$location = trailingslashit( get_template_directory_uri() );
$handle = 'bbp-parent-bbpress';
}
// Enqueue the bbPress styling
wp_enqueue_style( $handle, $location . $file, 'screen' );
}
}
add_action( 'wp_enqueue_scripts', 'kd_bbpress_css_enqueue' );
function keydesign_default_fonts_url() {
$font_url = add_query_arg( 'family', urlencode( 'Open Sans:300,400,600,700&subset=latin-ext' ), "//fonts.googleapis.com/css" );
return $font_url;
}
if( !function_exists('keydesign_enqueue_admin') ) {
function keydesign_enqueue_admin() {
wp_enqueue_style( 'keydesign_wp_admin_css', get_template_directory_uri() . '/core/assets/css/admin-styles.css', '', '' );
wp_enqueue_script( 'keydesign_wp_admin_js', get_template_directory_uri() . '/core/assets/js/admin-scripts.js', '', '1.0.0' );
}
}
add_action( 'admin_enqueue_scripts', 'keydesign_enqueue_admin' );
// ------------------------------------------------------------------------
// Theme Setup
// ------------------------------------------------------------------------
function keydesign_setup(){
if ( function_exists( 'add_theme_support' ) ) {
// Add multilanguage support
load_theme_textdomain( 'leadengine', get_template_directory() . '/languages' );
// Add theme support for feed links
add_theme_support( 'automatic-feed-links' );
add_theme_support( 'title-tag' );
add_theme_support( 'custom-header', array() );
add_theme_support( 'custom-background', array() );
// Add theme support for menus
if ( function_exists( 'register_nav_menus' ) ) {
register_nav_menus(
array(
'header-menu' => 'Header Menu',
'topbar-menu' => 'Topbar Menu',
'footer-menu' => 'Footer Menu',
)
);
}
// Enable support for Post Formats
add_theme_support( 'post-formats', array(
'gallery',
'video',
'audio',
'quote',
) );
// Enable support for theme image thumbnails
add_theme_support( 'post-thumbnails' );
add_image_size( 'keydesign-grid-image', 400, 250, true );
add_image_size( 'keydesign-left-image', 320, 280, true );
// Switch default core markup for search form, comment form, and comments to output valid HTML5.
add_theme_support( 'html5', array(
'search-form',
'comment-form',
'comment-list',
'gallery',
'caption',
) );
// Enable support for page excerpts
add_post_type_support( 'page', 'excerpt' );
}
}
add_action( 'after_setup_theme', 'keydesign_setup' );
// ------------------------------------------------------------------------
// Include plugin check, meta boxes, widgets, custom posts
// ------------------------------------------------------------------------
// Redux theme options config
include_once( get_template_directory() . '/core/options-init.php' );
// Theme activation and plugin check
include_once( get_template_directory() . '/core/theme-activation.php' );
// Add post meta boxes
include_once( get_template_directory() . '/core/theme-pagemeta.php' );
// Register widgetized areas
include_once( get_template_directory() . '/core/theme-sidebars.php' );
// ------------------------------------------------------------------------
// Content Width
// ------------------------------------------------------------------------
if ( ! isset( $content_width ) ) $content_width = 1240;
// ------------------------------------------------------------------------
// Blog functionality
// ------------------------------------------------------------------------
// Custom blog navigation
function keydesign_link_attributes_1($themetek_output) {
return str_replace('<a href=', '<a class="next" href=', $themetek_output);
}
function keydesign_link_attributes_2($themetek_output) {
return str_replace('<a href=', '<a class="prev" href=', $themetek_output);
}
add_filter('next_post_link', 'keydesign_link_attributes_1');
add_filter('previous_post_link', 'keydesign_link_attributes_2');
// Comment reply script enqueued
function keydesign_enqueue_comments_reply() {
if( get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}
}
add_action( 'comment_form_before', 'keydesign_enqueue_comments_reply' );
// Excerpt length
function keydesign_excerpt_length( $length ) {
$redux_ThemeTek = get_option( 'redux_ThemeTek' );
if( !class_exists( 'ReduxFramework' )) {
return 20;
} else {
return $redux_ThemeTek['tek-blog-excerpt'];
}
}
add_filter( 'excerpt_length', 'keydesign_excerpt_length', 999 );
// ------------------------------------------------------------------------
// Output Theme Options custom code
// ------------------------------------------------------------------------
function keydesign_vc_custom_colors() {
$redux_ThemeTek = get_option( 'redux_ThemeTek' );
ob_start();
include_once( get_template_directory() . '/core/colors-keydesign.css.php' );
$keydesign_custom_colors = ob_get_clean();
wp_add_inline_style('keydesign-style', $keydesign_custom_colors);
}
add_action('wp_enqueue_scripts', 'keydesign_vc_custom_colors');
function keydesign_custom_theme_styles() {
$redux_ThemeTek = get_option( 'redux_ThemeTek' );
if ( isset($redux_ThemeTek['tek-css']) ) {
wp_add_inline_style( 'keydesign-style', $redux_ThemeTek['tek-css'] );
}
}
add_action( 'wp_enqueue_scripts', 'keydesign_custom_theme_styles' );
function keydesign_hook_javascript() {
$redux_ThemeTek = get_option( 'redux_ThemeTek' );
if( ! empty( $redux_ThemeTek['tek-javascript'] ) || isset( $redux_ThemeTek['tek-javascript'] ) ) {
wp_add_inline_script( 'keydesign-scripts', $redux_ThemeTek['tek-javascript'] );
}
}
add_action( 'wp_enqueue_scripts', 'keydesign_hook_javascript' );
// ------------------------------------------------------------------------
// Force Visual Composer to initialize as "built into the theme".
// ------------------------------------------------------------------------
function keydesign_vcSetAsTheme() {
vc_set_as_theme();
}
add_action( 'vc_before_init', 'keydesign_vcSetAsTheme' );
// ------------------------------------------------------------------------
// Output Typekit Custom Javascript
// ------------------------------------------------------------------------
function keydesign_custom_typekit() {
$redux_ThemeTek = get_option( 'redux_ThemeTek' );
if ( isset($redux_ThemeTek['tek-typekit']) && $redux_ThemeTek['tek-typekit'] != '' ) {
wp_enqueue_script( 'keydesign-typekit', 'https://use.typekit.net/'.esc_js($redux_ThemeTek['tek-typekit']).'.js', array(), '1.0' );
wp_add_inline_script( 'keydesign-typekit', 'try{Typekit.load({ async: true });}catch(e){}' );
}
}
add_action('wp_enqueue_scripts', 'keydesign_custom_typekit');
// ------------------------------------------------------------------------
// Theme activation
// ------------------------------------------------------------------------
add_option( 'keydesign-verify', 'no', '', 'yes' );
// ------------------------------------------------------------------------
// Load maintenance page template
// ------------------------------------------------------------------------
add_action( 'template_include', 'keydesign_maintenance_mode', 1 );
function keydesign_maintenance_mode( $template ) {
$redux_ThemeTek = get_option( 'redux_ThemeTek' );
if ( ! class_exists( 'ReduxFramework' ) ) {
return $template;
}
$new_template = locate_template( array( '/core/templates/maintenance-page-template.php' ) );
if ( $redux_ThemeTek['tek-maintenance-mode'] && !is_user_logged_in() ) {
return $new_template;
}
return $template;
}
// ------------------------------------------------------------------------
// Add boxed body class
// ------------------------------------------------------------------------
if (isset($redux_ThemeTek['tek-layout-style'])) {
if ($redux_ThemeTek['tek-layout-style'] == 'boxed') {
add_filter( 'body_class','keydesign_body_class' );
function keydesign_body_class( $classes ) {
$classes[] = 'boxed';
return $classes;
}
}
}
// ------------------------------------------------------------------------
// Page transparent navigation
// ------------------------------------------------------------------------
function keydesign_transparent_nav($classes) {
if( class_exists( 'WooCommerce' ) && is_shop() ) {
$post_id = wc_get_page_id( 'shop' );
} else {
$post_id = get_the_ID();
}
$page_transparent_navigation = get_post_meta( $post_id, '_themetek_page_transparent_navbar', true );
if ( !empty($page_transparent_navigation)) {
$classes[] = 'transparent-navigation';
}
return $classes;
}
add_filter('body_class', 'keydesign_transparent_nav');
if (isset($redux_ThemeTek['tek-blog-transparent-nav'])) {
if ($redux_ThemeTek['tek-blog-transparent-nav'] == true) {
add_filter( 'body_class','keydesign_blog_transparent_nav' );
function keydesign_blog_transparent_nav( $classes ) {
$classes[] = '';
if (is_home() || is_search() || is_category() || is_tag() || is_author()) {
$classes[] = 'transparent-navigation';
}
return $classes;
}
}
}
if (isset($redux_ThemeTek['tek-transparent-homepage-menu'])) {
if ($redux_ThemeTek['tek-transparent-homepage-menu'] == true) {
add_filter( 'body_class','keydesign_front_page_transparent_nav' );
function keydesign_front_page_transparent_nav( $classes ) {
$classes[] = '';
if (is_front_page()) {
$classes[] = 'transparent-navigation';
}
return $classes;
}
}
}
// ------------------------------------------------------------------------
// Replace blog post video structure
// ------------------------------------------------------------------------
if( class_exists( 'KEYDESIGN_ADDON_CLASS' ) ) {
function keydesign_embed_oembed_html($html, $url, $args) {
global $post;
if( false !== strpos( $html, 'youtube.com' ) && has_post_thumbnail() && is_singular('post') ){
$html = '<div class="entry-video"><div class="video-cover">
<div class="background-video-image">'. wp_get_attachment_image(get_post_thumbnail_id(), 'large') .'</div>
<div class="play-video"><span class="fa fa-play"></span></div>'. $html .'</div></div>';
}
return $html;
}
add_filter('embed_oembed_html','keydesign_embed_oembed_html', 10, 3);
}