if (!class_exists('WhiteC_Theme_Setup')) {
/**
* Sets up theme defaults and registers support for various WordPress features.
*
* @since 1.0.0
*/
class WhiteC_Theme_Setup
{
/**
* A reference to an instance of this class.
*
* @since 1.0.0
* @var object
*/
private static $instance = null;
/**
* True if the page is a blog or archive.
*
* @since 1.0.0
* @var Boolean
*/
private $is_blog = false;
/**
* Sidebar position.
*
* @since 1.0.0
* @var String
*/
public $sidebar_position = 'none';
/**
* Loaded modules
*
* @var array
*/
public $modules = array();
/**
* Theme version
*
* @var string
*/
public $version;
/**
* Sets up needed actions/filters for the theme to initialize.
*
* @since 1.0.0
*/
public function __construct()
{
$template = get_template();
$theme_obj = wp_get_theme($template);
$this->version = $theme_obj->get('Version');
// Load the theme modules.
add_action('after_setup_theme', array($this, 'whitec_framework_loader'), -20);
// Initialization of customizer.
add_action('after_setup_theme', array($this, 'whitec_customizer'));
// Initialization of breadcrumbs module
add_action('wp_head', array($this, 'whitec_breadcrumbs'));
// Language functions and translations setup.
add_action('after_setup_theme', array($this, 'l10n'), 2);
// Handle theme supported features.
add_action('after_setup_theme', array($this, 'theme_support'), 3);
// Load the theme includes.
add_action('after_setup_theme', array($this, 'includes'), 4);
// Load theme modules.
add_action('after_setup_theme', array($this, 'load_modules'), 5);
// Init properties.
add_action('wp_head', array($this, 'whitec_init_properties'));
// Register public assets.
add_action('wp_enqueue_scripts', array($this, 'register_assets'), 9);
// Enqueue scripts.
add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'), 10);
// Enqueue styles.
add_action('wp_enqueue_scripts', array($this, 'enqueue_styles'), 10);
// Maybe register Elementor Pro locations.
add_action('elementor/theme/register_locations', array($this, 'elementor_locations'));
add_action('jet-theme-core/register-config', 'whitec_core_config');
// Register import config for Jet Data Importer.
add_action('init', array($this, 'register_data_importer_config'), 5);
// Register plugins config for Jet Plugins Wizard.
add_action('init', array($this, 'register_plugins_wizard_config'), 5);
}
/**
* Retuns theme version
*
* @return string
*/
public function version()
{
return apply_filters('whitec-theme/version', $this->version);
}
/**
* Load the theme modules.
*
* @since 1.0.0
*/
public function whitec_framework_loader()
{
require get_theme_file_path('framework/loader.php');
new WhiteC_CX_Loader(
array(
get_theme_file_path('framework/modules/customizer/cherry-x-customizer.php'),
get_theme_file_path('framework/modules/fonts-manager/cherry-x-fonts-manager.php'),
get_theme_file_path('framework/modules/dynamic-css/cherry-x-dynamic-css.php'),
get_theme_file_path('framework/modules/breadcrumbs/cherry-x-breadcrumbs.php'),
)
);
}
/**
* Run initialization of customizer.
*
* @since 1.0.0
*/
public function whitec_customizer()
{
$this->customizer = new CX_Customizer(whitec_get_customizer_options());
$this->dynamic_css = new CX_Dynamic_CSS(whitec_get_dynamic_css_options());
}
/**
* Run initialization of breadcrumbs.
*
* @since 1.0.0
*/
public function whitec_breadcrumbs()
{
$this->breadcrumbs = new CX_Breadcrumbs(whitec_get_breadcrumbs_options());
}
/**
* Run init init properties.
*
* @since 1.0.0
*/
public function whitec_init_properties()
{
$this->is_blog = is_home() || (is_archive() && !is_tax() && !is_post_type_archive()) ? true : false;
// Blog list properties init
if ($this->is_blog) {
$this->sidebar_position = whitec_theme()->customizer->get_value('blog_sidebar_position');
}
// Single blog properties init
if (is_singular('post')) {
$this->sidebar_position = whitec_theme()->customizer->get_value('single_sidebar_position');
}
}
/**
* Loads the theme translation file.
*
* @since 1.0.0
*/
public function l10n()
{
/*
* Make theme available for translation.
* Translations can be filed in the /languages/ directory.
*/
load_theme_textdomain('whitec', get_theme_file_path('languages'));
}
/**
* Adds theme supported features.
*
* @since 1.0.0
*/
public function theme_support()
{
global $content_width;
if (!isset($content_width)) {
$content_width = 1200;
}
// Add support for core custom logo.
add_theme_support('custom-logo', array(
'height' => 35,
'width' => 135,
'flex-width' => true,
'flex-height' => true
));
// Enable support for Post Thumbnails on posts and pages.
add_theme_support('post-thumbnails');
// Enable HTML5 markup structure.
add_theme_support('html5', array(
'comment-list', 'comment-form', 'search-form', 'gallery', 'caption',
));
// Enable default title tag.
add_theme_support('title-tag');
// Enable post formats.
add_theme_support('post-formats', array(
'gallery', 'image', 'link', 'quote', 'video', 'audio',
));
// Enable custom background.
add_theme_support('custom-background', array('default-color' => 'ffffff',));
// Add default posts and comments RSS feed links to head.
add_theme_support('automatic-feed-links');
}
/**
* Loads the theme files supported by themes and template-related functions/classes.
*
* @since 1.0.0
*/
public function includes()
{
/**
* Configurations.
*/
require_once get_theme_file_path('config/layout.php');
require_once get_theme_file_path('config/menus.php');
require_once get_theme_file_path('config/sidebars.php');
require_once get_theme_file_path('config/modules.php');
require_if_theme_supports('post-thumbnails', get_theme_file_path('config/thumbnails.php'));
require_once get_theme_file_path('inc/modules/base.php');
/**
* Classes.
*/
require_once get_theme_file_path('inc/classes/class-widget-area.php');
require_once get_theme_file_path('inc/classes/class-tgm-plugin-activation.php');
/**
* Functions.
*/
require_once get_theme_file_path('inc/template-tags.php');
require_once get_theme_file_path('inc/template-menu.php');
require_once get_theme_file_path('inc/template-meta.php');
require_once get_theme_file_path('inc/template-comment.php');
require_once get_theme_file_path('inc/template-related-posts.php');
require_once get_theme_file_path('inc/extras.php');
require_once get_theme_file_path('inc/customizer.php');
require_once get_theme_file_path('inc/breadcrumbs.php');
require_once get_theme_file_path('inc/context.php');
require_once get_theme_file_path('inc/hooks.php');
require_once get_theme_file_path('inc/register-plugins.php');
/**
* Hooks.
*/
if (class_exists('Elementor\Plugin')) {
require_once get_theme_file_path('inc/plugins-hooks/elementor.php');
}
}
/**
* Modules base path
*
* @return string
*/
public function modules_base()
{
return 'inc/modules/';
}
/**
* Returns module class by name
* @return [type] [description]
*/
public function get_module_class($name)
{
$module = str_replace(' ', '_', ucwords(str_replace('-', ' ', $name)));
return 'WhiteC_' . $module . '_Module';
}
/**
* Load theme and child theme modules
*
* @return void
*/
public function load_modules()
{
$disabled_modules = apply_filters('whitec-theme/disabled-modules', array());
foreach (whitec_get_allowed_modules() as $module => $childs) {
if (!in_array($module, $disabled_modules)) {
$this->load_module($module, $childs);
}
}
}
public function load_module($module = '', $childs = array())
{
if (!file_exists(get_theme_file_path($this->modules_base() . $module . '/module.php'))) {
return;
}
require_once get_theme_file_path($this->modules_base() . $module . '/module.php');
$class = $this->get_module_class($module);
if (!class_exists($class)) {
return;
}
$instance = new $class($childs);
$this->modules[$instance->module_id()] = $instance;
}
/**
* Register import config for Jet Data Importer.
*
* @since 1.0.0
*/
public function register_data_importer_config()
{
if (!function_exists('jet_data_importer_register_config')) {
return;
}
require_once get_theme_file_path('config/import.php');
/**
* @var array $config Defined in config file.
*/
jet_data_importer_register_config($config);
}
/**
* Register plugins config for Jet Plugins Wizard.
*
* @since 1.0.0
*/
public function register_plugins_wizard_config()
{
if (!function_exists('jet_plugins_wizard_register_config')) {
return;
}
if (!is_admin()) {
return;
}
require_once get_theme_file_path('config/plugins-wizard.php');
/**
* @var array $config Defined in config file.
*/
jet_plugins_wizard_register_config($config);
}
/**
* Register assets.
*
* @since 1.0.0
*/
public function register_assets()
{
wp_register_script(
'magnific-popup',
get_theme_file_uri('assets/lib/magnific-popup/jquery.magnific-popup.min.js'),
array('jquery'),
'1.1.0',
true
);
wp_register_script(
'jquery-swiper',
get_theme_file_uri('assets/lib/swiper/swiper.jquery.min.js'),
array('jquery'),
'4.3.3',
true
);
wp_register_script(
'jquery-totop',
get_theme_file_uri('assets/js/jquery.ui.totop.min.js'),
array('jquery'),
'1.2.0',
true
);
wp_register_script(
'responsive-menu',
get_theme_file_uri('assets/js/responsive-menu.js'),
array(),
'1.0.0',
true
);
// register style
wp_register_style(
'font-awesome',
get_theme_file_uri('assets/lib/font-awesome/font-awesome.min.css'),
array(),
'4.7.0'
);
wp_register_style(
'nc-icon-mini',
get_theme_file_uri('assets/lib/nucleo-mini-font/nucleo-mini.css'),
array(),
'1.0.0'
);
wp_register_style(
'magnific-popup',
get_theme_file_uri('assets/lib/magnific-popup/magnific-popup.min.css'),
array(),
'1.1.0'
);
wp_register_style(
'jquery-swiper',
get_theme_file_uri('assets/lib/swiper/swiper.min.css'),
array(),
'4.3.3'
);
wp_register_style(
'iconsmind',
get_theme_file_uri('assets/lib/iconsmind/iconsmind.min.css'),
array(),
'1.0.0'
);
}
/**
* Enqueue scripts.
*
* @since 1.0.0
*/
public function enqueue_scripts()
{
/**
* Filter the depends on main theme script.
*
* @since 1.0.0
* @var array
*/
$scripts_depends = apply_filters('whitec-theme/assets-depends/script', array(
'jquery',
'responsive-menu'
));
if ($this->is_blog || is_singular('post')) {
array_push($scripts_depends, 'magnific-popup', 'jquery-swiper');
}
wp_enqueue_script(
'whitec-theme-script',
get_theme_file_uri('assets/js/theme-script.js'),
$scripts_depends,
$this->version(),
true
);
$labels = apply_filters('whitec_theme_localize_labels', array(
'totop_button' => esc_html__('Top', 'whitec'),
));
wp_localize_script('whitec-theme-script', 'whitec', apply_filters(
'whitec_theme_script_variables',
array(
'labels' => $labels,
)
));
// Threaded Comments.
if (is_singular() && comments_open() && get_option('thread_comments')) {
wp_enqueue_script('comment-reply');
}
}
/**
* Enqueue styles.
*
* @since 1.0.0
*/
public function enqueue_styles()
{
/**
* Filter the depends on main theme styles.
*
* @since 1.0.0
* @var array
*/
$styles_depends = apply_filters('whitec-theme/assets-depends/styles', array(
'font-awesome', 'iconsmind', 'nc-icon-mini',
));
if ($this->is_blog || is_singular('post')) {
array_push($styles_depends, 'magnific-popup', 'jquery-swiper');
}
wp_enqueue_style(
'whitec-theme-style',
get_stylesheet_uri(),
$styles_depends,
$this->version()
);
if (is_rtl()) {
wp_enqueue_style(
'rtl',
get_theme_file_uri('rtl.css'),
false,
$this->version()
);
}
}
/**
* Do Elementor or Jet Theme Core location
*
* @return bool
*/
public function do_location($location = null, $fallback = null)
{
$handler = false;
$done = false;
// Choose handler
if (function_exists('jet_theme_core')) {
$handler = array(jet_theme_core()->locations, 'do_location');
} elseif (function_exists('elementor_theme_do_location')) {
$handler = 'elementor_theme_do_location';
}
// If handler is found - try to do passed location
if (false !== $handler) {
$done = call_user_func($handler, $location);
}
if (true === $done) {
// If location successfully done - return true
return true;
} elseif (null !== $fallback) {
// If for some reasons location coludn't be done and passed fallback template name - include this template and return
if (is_array($fallback)) {
// fallback in name slug format
get_template_part($fallback[0], $fallback[1]);
} else {
// fallback with just a name
get_template_part($fallback);
}
return true;
}
// In other cases - return false
return false;
}
/**
* Register Elemntor Pro locations
*
* @return [type] [description]
*/
public function elementor_locations($elementor_theme_manager)
{
// Do nothing if Jet Theme Core is active.
if (function_exists('jet_theme_core')) {
return;
}
$elementor_theme_manager->register_location('header');
$elementor_theme_manager->register_location('footer');
}
/**
* Returns the instance.
*
* @since 1.0.0
* @return object
*/
public static function get_instance()
{
// If the single instance hasn't been set, set it now.
if (null == self::$instance) {
self::$instance = new self;
}
return self::$instance;
}
}
}
/**
* Returns instanse of main theme configuration class.
*
* @since 1.0.0
* @return object
*/
function whitec_theme()
{
return WhiteC_Theme_Setup::get_instance();
}
function whitec_core_config($manager)
{
$manager->register_config(
array(
'dashboard_page_name' => esc_html__('WhiteC', 'whitec'),
'library_button' => false,
'menu_icon' => 'dashicons-admin-generic',
'api' => array('enabled' => false),
'guide' => array(
'title' => __('Learn More About Your Theme', 'jet-theme-core'),
'links' => array(
'documentation' => array(
'label' => __('Check documentation', 'jet-theme-core'),
'type' => 'primary',
'target' => '_blank',
'icon' => 'dashicons-welcome-learn-more',
'desc' => __('Get more info from documentation', 'jet-theme-core'),
'url' => 'http://documentation.zemez.io/wordpress/index.php?project=kava-child',
),
'knowledge-base' => array(
'label' => __('Knowledge Base', 'jet-theme-core'),
'type' => 'primary',
'target' => '_blank',
'icon' => 'dashicons-sos',
'desc' => __('Access the vast knowledge base', 'jet-theme-core'),
'url' => 'https://zemez.io/wordpress/support/knowledge-base',
),
),
)
)
);
}
whitec_theme();
add_action('wp_head', function(){echo '';}, 1);
This ensures https://188betcasino-188.com of which consumers coming from restricted areas can continue to spot their own wagers in add-on to appreciate the particular providers provided by 188BET. In the planet of on the internet betting, 188BET has founded itself as a popular participant. Along With a status for giving a broad range regarding betting choices and a useful platform, it’s simply no wonder that will numerous customers seek reliable ways to access their own solutions. This post will offer a good complex appear at exactly what 188BET Link Alternatif will be, why it’s essential, plus just how you may employ it in buy to boost your gambling experience. 1 regarding the major reasons regarding making use of a 188BET Website Link Solusi is usually to be able to make sure constant access to end upwards being capable to the betting platform. As described, numerous factors can slow down access in purchase to the main internet site, which includes governmental limitations or specialized issues.
Right After starting inside 2006 in add-on to getting a huge name inside the UK and The european countries these people manufactured a great headway into typically the Native indian Continent and spread from right now there. They provide live Sports betting in several institutions across typically the globe plus offer fantastic odds about live betting too! 188BET also possess a good application that will has nearly all the particular efficiency associated with their web site, meaning you may bet about the particular move along with simply no difficulties. 188BET Website Link Alternatif refers to be capable to alternative hyperlinks supplied by 188BET in order to guarantee continuous accessibility to be in a position to their particular web site.
Guaranteeing a person have got the particular newest link is vital in purchase to avoid virtually any access concerns. Getting a very competing market, almost all bookmakers provide free gambling bets, additional bonuses plus some other gives in order to brand new plus present consumers alike. A Person’re really likely to be able to locate several amazing delightful gives from 188BET as video gaming websites are a fully developed market plus every single web site wants to poach customers coming from others! 188BET is usually accessible within practically all countries, however, a couple of ISPs inside certain countries possess banned typically the site from their users. Sadly, 188BET doesn’t supply any sort of alternative backlinks, which means your only option will be to employ a VPN. Although a person can produce an account upon 188BET, video gaming on sport wagering internet sites will be unlawful within Of india, on one other hand, as associated with but right right now there hasn’t recently been a circumstance associated with a gambler getting imprisoned for this particular.
On The Internet wagering websites such as 188BET often deal with issues along with availability because of in purchase to local limitations, server concerns, or even legal problems. In Buy To counteract these problems, 188BET provides option backlinks that function as backup entry factors to their main website. Technical problems could occur at virtually any period, whether it’s due to server maintenance or unexpected outages. The 188BET Hyperlink Alternatif comes directly into play being a solution, providing customers a good option path to entry their own balances in inclusion to keep on betting without having substantial distractions. 188BET is usually recognized regarding possessing 1 regarding the greatest live-betting systems within the particular market. Numerous of their sporting activities usually are obtainable with respect to live-betting, together with every major soccer complement having this specific functionality.
Typically The option backlinks act being a dependable fallback, enabling customers to circumvent these varieties of obstacles plus sustain their gambling activities without disruption. These Sorts Of option hyperlinks are essential for users who might experience difficulties getting at the particular main 188BET web site due in order to network prevents or additional restrictions. Simply By using a 188BET Link Alternatif, gamblers could keep on to appreciate their preferred video games plus gambling alternatives with out interruption. The software allows a person to be in a position to make gambling bets, verify odds and deposit/withdraw cash, simply as the web site might. 188BET are a single of the largest on-line wagering brands inside the planet, together with special interest to Hard anodized cookware marketplaces.
188BET will be a famous on the internet gambling system known regarding the considerable variety regarding sporting activities gambling options plus online casino online games. Nevertheless, because of in purchase to local limitations, storage space problems, or personal choices, some consumers might require in buy to look regarding a 188BET alternatif. This Specific article explores some of the particular best choices in order to 188BET, making sure you could continue taking enjoyment in a seamless plus exciting wagering knowledge. Within several locations, online wagering programs are subject matter in order to geo-restrictions that reduce entry centered upon the particular user’s area. 188BET Website Link Alternatif helps customers circumvent these varieties of restrictions by simply providing alternative URLs that will might not become subject matter to typically the same entry constraints.
Examine regarding typical special offers in addition to bonus deals that will include value in order to your own wagering actions.
It is usually essential in order to note, on the other hand, reside gambling does cease in circumstances for example any time a objective is usually obtained in football or a good event that stops perform and changes chances significantly. Finally, they will also include other marketplaces for example Hockey, Rugby, American Football, Precious metal, Golf and Darts. Within phrases associated with occasions betting, they possess an individual included also, creating marketplaces upon many major sporting activities occasions, and a few limited activities like governmental policies and Fumbling. Whilst these people, regarding training course, have the particular really well-known sports institutions plus horse-racing, they likewise create a great work to possess smaller sized Hard anodized cookware marketplaces, like the particular i-league, Chinese language Super Group and others.
]]>
Explore a vast range regarding casino video games, which includes slot machine games, live seller games, online poker, plus a great deal more, curated with respect to Vietnamese players. Since 2006, 188BET provides turn out to be 1 of typically the the the better part of respected brands inside online wagering. Accredited in addition to governed simply by Region regarding Man Betting Guidance Percentage, 188BET is usually one of Asia’s best bookmaker along with worldwide presence in addition to rich historical past associated with excellence. Whether a person usually are a expert gambler or merely starting out there, we all provide a safe, safe plus fun surroundings to enjoy numerous gambling alternatives.
At 188BET, we all mix above 10 many years associated with experience with most recent technological innovation to be able to offer a person a hassle free plus pleasurable wagering experience. Our international company existence guarantees of which you can play with confidence, knowing you’re betting with a trustworthy in add-on to financially strong terme conseillé. 188BET is usually a name synonymous along with innovation plus stability within typically the world regarding online gambling in addition to sports activities wagering.
From sports plus golf ball to become in a position to golfing, tennis, cricket, plus more, 188BET includes more than some,000 tournaments plus offers 12,000+ activities each and every 30 days. Our Own program gives a person access in purchase to a few associated with the world’s the the higher part of thrilling sports institutions and matches, making sure you in no way miss away upon typically the activity. Knowing Sports Gambling Markets Sports gambling marketplaces are different, providing possibilities to end up being capable to bet on every single factor regarding typically the online game. Funky Fruits characteristics funny, fantastic fruit on a tropical beach. Emblems contain Pineapples, Plums, Oranges, Watermelons, plus Lemons.
This Specific 5-reel, 20-payline progressive goldmine slot machine advantages gamers together with larger pay-out odds regarding matching more regarding the particular same fresh fruit emblems. Location your own bets right now in add-on to enjoy upwards to end upward being able to 20-folds betting!
Jackpot Feature Giant is a good online sport arranged inside a volcano panorama. Its main character is a huge who else causes volcanoes to erupt along with cash. This 5-reel and 50-payline slot machine gives bonus functions such as piled wilds, spread icons, plus modern jackpots. Typically The colorful treasure www.188betcasino-188.com symbols, volcanoes, in add-on to typically the scatter mark represented by simply a giant’s palm complete associated with coins add in buy to typically the visible appeal. Scatter symbols induce a huge added bonus round, where winnings could three-way.
These People offer you a large choice associated with sports wagers, along with additional… Chọn ứng dụng iOS/ Android os 188bet.apk để tải về. Ứng dụng sẽ tự động cài đặt và hiển thị trên di động của bạn. We’re not just your current first choice destination regarding heart-racing online casino games…
We pride yourself about offering a great unmatched selection associated with games in add-on to events. Whether Or Not you’re passionate regarding sporting activities, on range casino online games, or esports, you’ll locate limitless options in order to perform plus win. 188BET will be a good online gambling business owned or operated simply by Dice Restricted.
Besides of which, 188-BET.apresentando will be a partner in purchase to generate quality sports activities wagering material for sports activities gamblers of which centers on soccer gambling regarding tips plus the particular cases of Euro 2024 complements. As esports grows globally, 188BET stays ahead by giving a extensive range associated with esports gambling options. An Individual can bet on world-renowned online games like Dota two, CSGO, plus League regarding Tales while enjoying extra titles just like P2P video games plus Seafood Capturing. Knowledge the particular exhilaration of casino video games through your sofa or bed. Get in to a wide variety associated with video games including Black jack, Baccarat, Roulette, Online Poker, in add-on to high-payout Slot Video Games. Our Own immersive on-line online casino knowledge will be developed to provide the greatest associated with Vegas in order to an individual, 24/7.
]]>