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);
Typically The 188bet cho điện thoại application is usually a mobile-friendly program developed with respect to customers seeking to be in a position to indulge inside online wagering activities easily through their cell phones . It encompasses a variety of wagering alternatives, including sporting activities, on collection casino video games, plus live wagering, all streamlined into a single software. The Particular application consists of a comprehensive accounts administration section wherever users may very easily access their particular betting history, manage money, and adjust personal information. Consumers also have got typically the option to end up being capable to arranged wagering restrictions, making sure dependable gambling practices.
The Particular main dashboard of the particular mobile application will be smartly created for ease associated with use. Through right here, users may access different parts associated with typically the wagering system, for example sporting activities wagering, online casino video games, plus reside gambling choices. Each And Every class will be plainly shown, permitting customers to navigate easily in between diverse betting options. 188BET thuộc sở hữu của Cube Restricted, cấp phép hoạt động bởi Isle of Guy Gambling Direction Commission. Constantly verify the particular promotions section regarding the software to get benefit associated with these sorts of provides, which often can significantly boost your own bank roll in add-on to gambling encounter. Establishing restrictions is vital regarding sustaining a healthy and balanced gambling relationship.
Providing comments concerning the particular software can furthermore help increase its features in addition to customer support. Stay knowledgeable concerning the newest functions and updates by frequently checking the app’s update area. Typically The 188bet group will be dedicated to end up being capable to providing typical enhancements in inclusion to features to increase typically the customer encounter continuously. Knowing wagering chances will be essential with consider to generating educated decisions.
Employ the app’s features to arranged downpayment limitations, reduction restrictions, in inclusion to treatment moment limits to end upwards being capable to advertise accountable gambling. In Case an individual 188bet-slot24.com ever before sense your gambling is usually getting a problem, look for assist right away. One regarding the standout features regarding the particular application is usually the particular survive sports activities betting segment. Users may very easily accessibility entries regarding continuing sporting activities activities, look at live probabilities, and place gambling bets in real-time. This Specific feature not just elevates typically the betting knowledge nevertheless also gives customers with the adrenaline excitment regarding participating within activities as they will occur. Get Involved inside discussion boards and talk groups wherever consumers reveal their particular experiences, tips, plus strategies.
Familiarize your self along with fracción, sectional, and Us odds to be in a position to make much better wagering choices.
]]>
Luckily, there’s an large quantity regarding wagering options plus events in buy to use at 188Bet. Let it end upward being real sports activities occasions that interest you or virtual games; the enormous available variety will fulfill your own anticipations. All Of Us take great pride in ourselves upon giving an unmatched choice regarding online games and events. Whether you’re excited concerning sporting activities, casino video games, or esports, you’ll find unlimited possibilities to be able to enjoy in add-on to win. I attempted 188Bet and I loved the particular variety regarding alternatives it provides. We are happy along with 188Bet plus I advise it to additional on the internet wagering enthusiasts.
Appreciate endless procuring on Casino in add-on to Lottery sections, plus possibilities in order to win upward in purchase to 188 thousand VND together with combination wagers. All Of Us offer you a range associated with attractive marketing promotions developed to improve your encounter plus boost your earnings. We’re not merely your own first location regarding heart-racing online casino video games… In addition, 188Bet gives a dedicated holdem poker system powered by Microgaming Poker System. An Individual may find free competitions in inclusion to additional kinds together with low plus high levels. Keep in brain these sorts of wagers will obtain emptiness if the match up begins before the particular planned period, other than for in-play types.
In other words, the particular stakes will typically not really end upward being regarded appropriate right after the planned moment. The Particular same conditions use when typically the number regarding models differs from what has been previously slated in add-on to declared. Right After selecting 188Bet as your safe system to place bets, an individual could indication upward for a brand new bank account within merely several moments. Typically The “Sign up” plus “Login” switches are usually located at the particular screen’s top-right corner. Typically The registration process requires a person with consider to simple info such as your current name, money, plus email tackle. It likewise asks an individual regarding a distinctive user name and a great recommended password.
At 188BET, all of us combine above ten years of experience together with most recent technological innovation to provide an individual a hassle free plus enjoyable wagering encounter. The worldwide brand occurrence ensures of which an individual could enjoy along with confidence, realizing you’re wagering with a reliable in addition to monetarily solid bookmaker. Typically The 188Bet sporting activities betting website offers a broad range regarding products additional as compared to sporting activities also. There’s a great on-line online casino along with above eight hundred games through famous software providers just like BetSoft in add-on to Microgaming. In Case you’re interested in typically the reside online casino, it’s also accessible upon the particular 188Bet site.
Whether an individual usually are a expert gambler or a everyday player looking with regard to some enjoyable, 188bet vui offers something in buy to provide regarding every person. As esports expands globally, 188BET keeps ahead by simply providing a extensive range of esports gambling alternatives. A Person may bet about world-renowned online games such as Dota a couple of, CSGO, plus Group of Legends whilst enjoying additional titles just like P2P online games in add-on to Fish Taking Pictures. As a Kenyan sports fan, I’ve recently been loving the knowledge together with 188Bet.
The Particular 188Bet web site helps a active reside wagering function inside which a person could practically always observe an continuing celebration. An Individual could use sports complements from various crews in inclusion to tennis and hockey complements. Soccer is usually simply by far typically the most well-known object about the particular listing regarding sports activities betting websites. 188Bet sportsbook reviews reveal that will it thoroughly covers sports.
Within our own 188Bet overview, we all identified this particular terme conseillé as one of typically the modern day in add-on to most extensive wagering sites. 188Bet provides an assortment regarding online games along with fascinating chances plus allows an individual use 188bet đăng ký higher limits regarding your own wages. We All believe that bettors won’t possess any sort of boring occasions utilizing this system. The web site claims to have 20% much better prices compared to some other gambling trades. Typically The high number associated with reinforced sports crews can make Bet188 sporting activities wagering a popular bookmaker regarding these fits. The Particular Bet188 sports activities wagering site offers a good engaging and fresh appear that will permits guests to select from different color themes.
Get in to a broad range of video games which include Black jack, Baccarat, Roulette, Online Poker, in addition to high-payout Slot Device Game Online Games. The impressive on-line online casino encounter is usually created in purchase to deliver typically the greatest associated with Vegas in order to an individual, 24/7. From sports plus golf ball to golfing, tennis, cricket, plus a whole lot more, 188BET includes more than four,000 tournaments plus provides 10,000+ events every 30 days. The platform gives a person entry to several associated with the particular world’s most fascinating sports activities leagues and fits, guaranteeing an individual never miss out there on the actions.
Typically The panel improvements in real moment plus offers an individual together with all the particular details a person want regarding every match up. 188Bet new consumer offer products modify frequently, making sure of which these options adjust to become able to diverse occasions in addition to occasions. Right Right Now There usually are specific items accessible for numerous sports along with online poker in add-on to on range casino bonuses. There are a lot of special offers at 188Bet, which usually shows the great interest associated with this specific bookie to be in a position to additional bonuses.
The Particular major menus consists of numerous alternatives, for example Racing, Sports, On Range Casino, in add-on to Esports. The supplied -panel about typically the still left side makes navigation between activities much more straightforward and comfy. Encounter the particular excitement regarding on range casino online games from your couch or your bed.
Since 2006, 188BET offers turn to be able to be a single associated with the most highly regarded brand names in on-line betting. Whether Or Not you are usually a expert gambler or merely starting out, we all provide a safe, protected in inclusion to fun atmosphere to take enjoyment in numerous gambling choices. Several 188Bet reviews possess adored this platform feature, plus we all consider it’s an excellent asset regarding all those interested in survive betting. Getting At typically the 188Bet reside gambling section is usually as effortless as cake. Almost All an individual need to perform will be click upon typically the “IN-PLAY” tabs, see the most recent reside activities, in addition to filter typically the results as each your choices.
]]>
The Particular 188bet cho điện thoại application is a mobile-friendly program designed for customers seeking to participate inside on-line gambling activities conveniently from their particular smartphones. It has a wide variety associated with gambling alternatives, which includes sports activities, online casino games, plus live gambling, all efficient into a single application. Typically The software includes a extensive bank account administration area where users may very easily accessibility their own betting history, manage funds, plus change personal information. Consumers furthermore have got the particular alternative in buy to arranged gambling restrictions, guaranteeing dependable wagering habits.
Get Familiar your self with quebrado, sectional, and faq 188bet chính sách United states odds to create much better betting options.
Offering suggestions regarding the particular software could likewise help increase their features in inclusion to customer support. Stay informed concerning the latest functions and up-dates by simply frequently checking the app’s up-date section. The Particular 188bet staff is dedicated in order to providing typical enhancements plus characteristics to increase the particular consumer experience continuously. Knowing betting chances is essential regarding producing knowledgeable selections.
The major dash of the mobile software will be intentionally created for ease regarding employ. From in this article, users can access different sections regarding typically the gambling system, like sports activities gambling, online casino video games, and survive betting choices. Each class will be conspicuously shown, enabling customers to understand easily between diverse wagering possibilities. 188BET thuộc sở hữu của Dice Limited, cấp phép hoạt động bởi Isle associated with Person Betting Supervision Commission rate. Usually verify the particular special offers section regarding typically the app to consider benefit regarding these sorts of gives, which could significantly enhance your own bank roll plus wagering knowledge. Setting restrictions is essential with regard to keeping a healthy gambling partnership.
Use the particular app’s characteristics in order to established down payment restrictions, reduction limits, and treatment time limitations in order to market accountable wagering. In Case an individual actually sense your current gambling is usually becoming a issue, look for aid instantly. 1 associated with typically the standout features associated with the particular application will be the survive sports betting area. Consumers can quickly accessibility listings associated with continuous sports events, look at live probabilities, in add-on to place gambling bets in current. This Specific function not only elevates the gambling encounter but likewise offers users along with the adrenaline excitment associated with engaging inside activities as these people occur. Take Part within community forums and conversation organizations exactly where consumers share their own experiences, suggestions, in addition to strategies.
]]>