File: /home/nokatech/public_html/wp-content/themes/consultox/functions.php
<?php
function get_theme_version() {
$theme = wp_get_theme();
return $theme->get('Version');
}
if (!defined('THEME_VERSION')) {
define('THEME_VERSION', get_theme_version());
}
require_once get_template_directory() . '/includes/loader.php';
add_action('after_setup_theme', 'consultox_setup_theme');
add_action('after_setup_theme', 'consultox_load_default_hooks');
function consultox_setup_theme() {
load_theme_textdomain('consultox', get_template_directory() . '/languages');
add_theme_support('title-tag');
add_theme_support('custom-header');
add_theme_support('custom-background');
add_theme_support('woocommerce');
add_theme_support('wc-product-gallery-lightbox');
add_theme_support('post-thumbnails');
add_theme_support('automatic-feed-links');
add_theme_support('wp-block-styles');
add_theme_support('align-wide');
add_theme_support('wp-block-styles');
add_theme_support('editor-styles');
$GLOBALS['content_width'] = 525;
// Register image sizes
add_image_size('consultox_370x310', 370, 310, true);
add_image_size('consultox_70x70', 70, 70, true);
add_image_size('consultox_370x290', 370, 290, true);
add_image_size('consultox_440x305', 440, 305, true);
add_image_size('consultox_310x305', 310, 305, true);
add_image_size('consultox_1170x440', 1170, 440, true);
// Register navigation menus
register_nav_menus(array(
'main_menu' => esc_html__('Main Menu', 'consultox'),
'onepage_menu' => esc_html__('OnePage Menu', 'consultox'),
'main_menu_two' => esc_html__('Main Menu Two', 'consultox'),
));
add_theme_support('html5', array(
'comment-form',
'comment-list',
'gallery',
'caption',
));
// Add theme support for Custom Logo.
add_theme_support('custom-logo', array(
'width' => 250,
'height' => 250,
'flex-width' => true,
));
// Add theme support for selective refresh for widgets.
add_theme_support('customize-selective-refresh-widgets');
add_editor_style();
add_action('admin_init', 'consultox_admin_init', 2000000);
}
function consultox_admin_init() {
remove_action('admin_notices', array('ReduxFramework', '_admin_notices'), 99);
}
// Enqueue Scripts and Styles
function consultox_enqueue_scripts() {
$theme_assets_dir = get_template_directory_uri() . '/assets/';
// Enqueue CSS files from theme/assets/css/
$css_files = scandir(get_template_directory() . '/assets/css/');
foreach ($css_files as $css_file) {
if (pathinfo($css_file, PATHINFO_EXTENSION) === 'css') {
wp_enqueue_style(
pathinfo($css_file, PATHINFO_FILENAME),
$theme_assets_dir . 'css/' . $css_file,
array(),
THEME_VERSION
);
}
}
// Enqueue CSS files from theme/assets/css/block/
$block_css_dir = get_template_directory() . '/assets/css/block/';
$block_css_files = scandir($block_css_dir);
foreach ($block_css_files as $block_css_file) {
if (pathinfo($block_css_file, PATHINFO_EXTENSION) === 'css') {
wp_enqueue_style(
'block-' . pathinfo($block_css_file, PATHINFO_FILENAME),
$theme_assets_dir . 'css/block/' . $block_css_file,
array(),
THEME_VERSION
);
}
}
// Enqueue CSS files from assets/css/theme/
$default_css_dir = get_template_directory() . '/assets/css/theme/';
$default_css_files = scandir($default_css_dir);
foreach ($default_css_files as $default_css_file) {
if (pathinfo($default_css_file, PATHINFO_EXTENSION) === 'css') {
wp_enqueue_style(
'default-' . pathinfo($default_css_file, PATHINFO_FILENAME),
$theme_assets_dir . 'css/theme/' . $default_css_file,
array(),
THEME_VERSION
);
}
}
wp_enqueue_script( 'consultox-wps_main', get_template_directory_uri().'/assets/js/important/wps_main.js', array( 'jquery' ), '2.1.2', true );
wp_enqueue_script('consultox-hover-slider', get_template_directory_uri() . '/assets/js/important/hover-slider.js', array(), '1.0.0', true);
// Enqueue all JavaScript files in the theme/assets/js directory
$js_files = scandir(get_template_directory() . '/assets/js/theme/');
foreach ($js_files as $js_file) {
if (pathinfo($js_file, PATHINFO_EXTENSION) === 'js') {
wp_enqueue_script(
pathinfo($js_file, PATHINFO_FILENAME),
$theme_assets_dir . 'js/theme/' . $js_file,
array('jquery'),
THEME_VERSION,
false
);
}
}
// Enqueue jquery-ui-core
wp_enqueue_script('jquery-ui-core');
// Enqueue comment-reply if on a singular page
if (is_singular()) {
wp_enqueue_script('comment-reply');
}
}
add_action('wp_enqueue_scripts', 'consultox_enqueue_scripts');
/*---------- Enqueue Styles and Scripts ----------*/
/*---------- Enqueue styles and scripts ends ----------*/
// Google Fonts
function consultox_fonts_url() {
$fonts_url = '';
$font_families['Inter'] = 'Inter:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap';
// Add more font families as needed
$font_families = apply_filters('CONSULTOX/includes/classes/header_enqueue/font_families', $font_families);
$query_args = array(
'family' => urlencode(implode('|', $font_families)),
'subset' => urlencode('latin,latin-ext'),
);
$protocol = is_ssl() ? 'https' : 'http';
$fonts_url = add_query_arg($query_args, $protocol . '://fonts.googleapis.com/css');
return esc_url_raw($fonts_url);
}
function consultox_theme_styles() {
wp_enqueue_style('consultox-theme-fonts', consultox_fonts_url(), array(), null);
}
add_action('wp_enqueue_scripts', 'consultox_theme_styles');
add_action('admin_enqueue_scripts', 'consultox_theme_styles');
// Helper Function
if (!function_exists('consultox_set')) {
function consultox_set($var, $key, $def = '') {
if (is_object($var) && isset($var->$key)) {
return $var->$key;
} elseif (is_array($var) && isset($var[$key])) {
return $var[$key];
} elseif ($def) {
return $def;
} else {
return false;
}
}
}
function dequeue_elementor_custom_icon_styles() {
wp_dequeue_style('elementor-icons-shared-0-css');
}
add_action('wp_enqueue_scripts', 'dequeue_elementor_custom_icon_styles', 20);
// Add specific CSS class by filter body class.
$options = consultox_WSH()->option();
if (consultox_set($options, 'boxed_wrapper')) {
add_filter('body_class', function ($classes) {
$classes[] = 'boxed_wrapper';
return $classes;
});
}