MOON
Server: Apache
System: Linux nserver.cafsindia.com 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: cafsindia (1002)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: /home/cafsindia/public_html/wp-content/themes/excitor/framework/template-functions.php
<?php
if ( ! isset( $content_width ) ) $content_width = 900;
if ( is_singular() ) wp_enqueue_script( "comment-reply" );

if ( ! function_exists( 'excitor_setup' ) ) {
	function excitor_setup() {
		/* Load textdomain */
		load_theme_textdomain( 'excitor', get_template_directory() . '/languages' );

		/* Add custom header */
		add_theme_support('custom-header');

		/* Add RSS feed links to <head> for posts and comments. */
		add_theme_support( 'automatic-feed-links' );

		/* Enable support for Post Thumbnails, and declare sizes. */
		add_theme_support( 'post-thumbnails' );

		/* Enable support for Title Tag */
		 add_theme_support( "title-tag" );

		/* This theme uses wp_nav_menu() in locations. */
		register_nav_menus( array(
			'main_navigation'   => esc_html__( 'Main Navigation','excitor' ),
			'mobile_navigation'   => esc_html__( 'Mobile Navigation','excitor' ),
		) );

		/* This theme styles the visual editor to resemble the theme style, specifically font, colors, icons, and column width. */
		add_editor_style('editor-style.css');

		/* 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 Post Formats. See http://codex.wordpress.org/Post_Formats */
		add_theme_support( 'post-formats', array(
			'video', 'audio', 'quote', 'link', 'gallery',
		) );

		/* This theme allows users to set a custom background. */
		add_theme_support( 'custom-background', apply_filters( 'excitor_custom_background_args', array(
			'default-color' => 'f5f5f5',
		) ) );

		/* Add support for featured content. */
		add_theme_support( 'featured-content', array(
			'featured_content_filter' => 'excitor_get_featured_posts',
			'max_posts' => 6,
		) );

		/* This theme uses its own gallery styles. */
		add_filter( 'use_default_gallery_style', '__return_false' );

		/* Add support for portfolio. */
		add_post_type_support( 'fw-portfolio', array('excerpt') );

		/* Add support woocommerce */
		add_theme_support( 'woocommerce' );
	}
}
add_action( 'after_setup_theme', 'excitor_setup' );

/* Custom Site Title */
if ( ! function_exists( 'excitor_wp_title' ) ) {
	function excitor_wp_title( $title, $sep ) {
		global $paged, $page;
		if ( is_feed() ) {
			return $title;
		}
		// Add the site name.
		$title .= get_bloginfo( 'name' );
		// Add the site description for the home/front page.
		$site_description = get_bloginfo( 'description', 'display' );
		if ( $site_description && ( is_home() || is_front_page() ) ) {
			$title = "$title $sep $site_description";
		}
		// Add a page number if necessary.
		if ( $paged >= 2 || $page >= 2 ) {
			$title = sprintf( esc_html__( 'Page %s', 'excitor' ), max( $paged, $page ) ) . " $sep $title";
		}
		return $title;
	}
	add_filter( 'wp_title', 'excitor_wp_title', 10, 2 );
}

/* Filter body class */
if (!function_exists('excitor_body_classes')) {
	function excitor_body_classes($classes) {
		global $excitor_options;
		$page_options = function_exists("fw_get_db_post_option")?fw_get_db_post_option(get_the_ID(), 'page_options'):array();

		$classes[] = (isset($excitor_options["site_layout"])&&$excitor_options["site_layout"])?$excitor_options["site_layout"]:'wide';

		$header_layout = (isset($excitor_options["header_layout"])&&$excitor_options["header_layout"])?$excitor_options["header_layout"]:'1';
		$page_header_layout = (isset($page_options['header_layout'])&&$page_options['header_layout'])?$page_options['header_layout']:'default';
		$classes[] = $page_header_layout=='default'?'header-'.$header_layout:'header-'.$page_header_layout;

		return $classes;
	}
	add_filter('body_class', 'excitor_body_classes');
}

/* Header */
function excitor_header() {
    global $excitor_options;
	$page_options = function_exists("fw_get_db_post_option")?fw_get_db_post_option(get_the_ID(), 'page_options'):array();

    $header_layout =isset($excitor_options["header_layout"]) ? $excitor_options["header_layout"] : '-1';
	$page_header_layout = (isset($page_options['header_layout'])&&$page_options['header_layout'])?$page_options['header_layout']:'default';
	if(is_search() || is_404()){
		$page_header_layout = 'default';
	}
	$header_layout = $page_header_layout=='default'?$header_layout:$page_header_layout;

	switch ($header_layout) {
		case '1':
            get_template_part('framework/headers/header', 'v1');
            break;
        case '2':
            get_template_part('framework/headers/header', 'v2');
            break;
		case '3':
            get_template_part('framework/headers/header', 'v3');
            break;
		case 'onepage':
            get_template_part('framework/headers/header', 'onepage');
            break;
		case 'onepagescroll':
            get_template_part('framework/headers/header', 'onepagescroll');
            break;
		case 'vertical':
            get_template_part('framework/headers/header', 'vertical');
            break;
		case 'minivertical':
            get_template_part('framework/headers/header', 'minivertical');
            break;
		default :
			get_template_part('framework/headers/header', 'default');
			break;
    }
}

/* Title Bar */
if ( ! function_exists( 'excitor_titlebar' ) ) {
	function excitor_titlebar() {
		global $excitor_options;
		$page_options = function_exists("fw_get_db_post_option")?fw_get_db_post_option(get_the_ID(), 'page_options'):array();

		$titlebar_layout =isset($excitor_options["titlebar_layout"]) ? $excitor_options["titlebar_layout"] : '1';
		$page_titlebar_layout = isset($page_options['titlebar_layout'])?$page_options['titlebar_layout']:'default';
		$titlebar_layout = ($page_titlebar_layout=='default')?$titlebar_layout:$page_titlebar_layout;
		switch ($titlebar_layout) {
			case '1':
				get_template_part('framework/titlebars/titlebar', 'v1');
				break;
			case '2':
				get_template_part('framework/titlebars/titlebar', 'v2');
				break;
			default :
				get_template_part('framework/titlebars/titlebar', 'v1');
				break;
		}
	}
}

/* Footer */
function excitor_footer() {
    global $excitor_options;
	$page_options = function_exists("fw_get_db_post_option")?fw_get_db_post_option(get_the_ID(), 'page_options'):array();

    $footer_layout =isset($excitor_options["footer_layout"]) ? $excitor_options["footer_layout"] : '-1';
	$page_footer_layout = isset($page_options['footer_layout'])?$page_options['footer_layout']:'default';
	$footer_layout = $page_footer_layout=='default'?$footer_layout:$page_footer_layout;
    switch ($footer_layout) {
        case '1':
            get_template_part('framework/footers/footer', 'v1');
            break;
		case '2':
            get_template_part('framework/footers/footer', 'v2');
            break;
		default :
			get_template_part('framework/footers/footer', 'default');
			break;
    }
}

/* Logo */
if (!function_exists('excitor_logo')) {
	function excitor_logo($url = '', $height = 30) {
		if(!$url){
			$url = get_template_directory_uri().'/assets/images/logo.png';
		}
		echo '<a href="'.home_url('/').'"><img class="logo" style="height: '.esc_attr($height).'px; width: auto;" src="'.esc_url($url).'" alt="'.esc_attr__('Logo', 'excitor').'"/></a>';
	}
}

/* Nav Menu */
if (!function_exists('excitor_nav_menu')) {
	function excitor_nav_menu($menu_slug = '', $theme_location = '', $container_class = '') {
		if (has_nav_menu($theme_location) || $menu_slug) {
			wp_nav_menu(array(
				'menu'				=> $menu_slug,
				'container_class' 	=> $container_class,
				'items_wrap'      	=> '<ul id="%1$s" class="%2$s">%3$s</ul>',
				'theme_location'  	=> $theme_location
			));
		}else{
			wp_page_menu(array(
				'menu_class'  => $container_class
			));
		}
	}
}

/* Page title */
if (!function_exists('excitor_page_title')) {
    function excitor_page_title() {
		ob_start();
		if(is_front_page()){
			esc_html_e('Home', 'excitor');
		}elseif(is_home()){
			esc_html_e('Blog', 'excitor');
		}elseif(is_search()){
			esc_html_e('Search', 'excitor');
		}elseif(is_404()){
			esc_html_e('Page Not Found ', 'excitor');
		}elseif (is_archive()) {
			if (is_category()){
				single_cat_title();
			}elseif(get_post_type() == 'fw-portfolio'||get_post_type() == 'bt_team'||get_post_type() == 'bt_services'||get_post_type() == 'bt_story'){
				single_term_title();
			}elseif (is_tag()){
				single_tag_title();
			}elseif (is_author()){
				printf(__('Author: %s', 'excitor'), '<span class="vcard">' . get_the_author() . '</span>');
			}elseif (is_day()){
				printf(__('Day: %s', 'excitor'), '<span>' . get_the_date(get_option('date_format')) . '</span>');
			}elseif (is_month()){
				printf(__('Month: %s', 'excitor'), '<span>' . get_the_date(get_option('date_format')) . '</span>');
			}elseif (is_year()){
				printf(__('Year: %s', 'excitor'), '<span>' . get_the_date(get_option('date_format')) . '</span>');
			}elseif (is_tax('post_format', 'post-format-aside')){
				esc_html_e('Aside', 'excitor');
			}elseif (is_tax('post_format', 'post-format-gallery')){
				esc_html_e('Gallery', 'excitor');
			}elseif (is_tax('post_format', 'post-format-image')){
				esc_html_e('Image', 'excitor');
			}elseif (is_tax('post_format', 'post-format-video')){
				esc_html_e('Video', 'excitor');
			}elseif (is_tax('post_format', 'post-format-quote')){
				esc_html_e('Quote', 'excitor');
			}elseif (is_tax('post_format', 'post-format-link')){
				esc_html_e('Link', 'excitor');
			}elseif (is_tax('post_format', 'post-format-status')){
				esc_html_e('Status', 'excitor');
			}elseif (is_tax('post_format', 'post-format-audio')){
				esc_html_e('Audio', 'excitor');
			}elseif (is_tax('post_format', 'post-format-chat')){
				esc_html_e('Chat', 'excitor');
			}else{
				esc_html_e('Archive', 'excitor');
			}
		} else {
			the_title();
		}
		
		return ob_get_clean();
    }
}

/* Page breadcrumb */
if (!function_exists('excitor_page_breadcrumb')) {
    function excitor_page_breadcrumb($home_text = 'Home', $delimiter = '-') {
		global $post;
		
		if(is_front_page()){
			echo esc_html('Front Page', 'excitor');
		}elseif(is_home()){
			echo esc_html('Blog', 'excitor');
		}else{
			echo '<a href="' . esc_url(home_url('/')) . '">' . $home_text . '</a> ' . $delimiter . ' ';
		}

		if(is_category()){
			$thisCat = get_category(get_query_var('cat'), false);
			if ($thisCat->parent != 0) echo get_category_parents($thisCat->parent, TRUE, ' ' . $delimiter . ' ');
			echo '<span class="current">' . single_cat_title(esc_html__('Archive by category: ', 'excitor'), false) . '</span>';
		}elseif ( is_tag() ) {
			echo '<span class="current">' . single_tag_title(esc_html__('Posts tagged: ', 'excitor'), false) . '</span>';
		}elseif(is_tax()){
			echo '<span class="current">' . single_term_title(esc_html__('Archive by taxonomy: ', 'excitor'), false) . '</span>';
		}elseif(is_search()){
			echo '<span class="current">' . esc_html__('Search results for: ', 'excitor') . get_search_query() . '</span>';
		}elseif(is_day()){
			echo '<a href="' . get_month_link(get_the_time('Y'),get_the_time('m')) . '">' . get_the_time('F').' '. get_the_time('Y') . '</a> ' . $delimiter . ' ';
			echo '<span class="current">' . get_the_time('d') . '</span>';
		}elseif(is_month()){
			echo '<span class="current">' . get_the_time('F'). ' '. get_the_time('Y') . '</span>';
		}elseif(is_single() && !is_attachment()){
			if(get_post_type() != 'post'){
				if(get_post_type() == 'fw-portfolio'){
					$terms = get_the_terms(get_the_ID(), 'fw-portfolio-category', '' , '' );
					if(!empty($terms) && !is_wp_error($terms)) {
						the_terms(get_the_ID(), 'fw-portfolio-category', '' , ', ' );
						echo ' ' . $delimiter . ' ' . '<span class="current">' . get_the_title() . '</span>';
					}else{
						echo '<span class="current">' . get_the_title() . '</span>';
					}
				}elseif(get_post_type() == 'bt_team'){
					$terms = get_the_terms(get_the_ID(), 'bt_team_category', '' , '' );
					if(!empty($terms) && !is_wp_error($terms)) {
						the_terms(get_the_ID(), 'bt_team_category', '' , ', ' );
						echo ' ' . $delimiter . ' ' . '<span class="current">' . get_the_title() . '</span>';
					}else{
						echo '<span class="current">' . get_the_title() . '</span>';
					}
				}elseif(get_post_type() == 'bt_testimonial'){
					$terms = get_the_terms(get_the_ID(), 'bt_testimonial_category', '' , '' );
					if(!empty($terms) && !is_wp_error($terms)) {
						the_terms(get_the_ID(), 'bt_testimonial_category', '' , ', ' );
						echo ' ' . $delimiter . ' ' . '<span class="current">' . get_the_title() . '</span>';
					}else{
						echo '<span class="current">' . get_the_title() . '</span>';
					}
				}elseif(get_post_type() == 'bt_services'){
					$terms = get_the_terms(get_the_ID(), 'bt_services_category', '' , '' );
					if(!empty($terms) && !is_wp_error($terms)) {
						the_terms(get_the_ID(), 'bt_services_category', '' , ', ' );
						echo ' ' . $delimiter . ' ' . '<span class="current">' . get_the_title() . '</span>';
					}else{
						echo '<span class="current">' . get_the_title() . '</span>';
					}
				}elseif(get_post_type() == 'bt_story'){
					$terms = get_the_terms(get_the_ID(), 'bt_story_category', '' , '' );
					if(!empty($terms) && !is_wp_error($terms)) {
						the_terms(get_the_ID(), 'bt_story_category', '' , ', ' );
						echo ' ' . $delimiter . ' ' . '<span class="current">' . get_the_title() . '</span>';
					}else{
						echo '<span class="current">' . get_the_title() . '</span>';
					}
				}else{
					$post_type = get_post_type_object(get_post_type());
					$slug = $post_type->rewrite;
					echo '<a href="' . esc_url(home_url('/')) . '/' . $slug['slug'] . '/">' . $post_type->labels->singular_name . '</a>';
					echo ' ' . $delimiter . ' ' . '<span class="current">' . get_the_title() . '</span>';
				}
			}else{
				$cat = get_the_category(); $cat = $cat[0];
				$cats = get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
				echo ''.$cats;
				echo '<span class="current">' . get_the_title() . '</span>';
			}
		}elseif ( !is_single() && !is_page() && get_post_type() != 'post' && !is_404() ) {
			$post_type = get_post_type_object(get_post_type());
			if($post_type) echo '<span class="current">' . $post_type->labels->singular_name . '</span>';
		}elseif ( is_attachment() ) {
			$parent = get_post($post->post_parent);
			echo '<a href="' . get_permalink($parent) . '">' . $parent->post_title . '</a>';
			echo ' ' . $delimiter . ' ' . '<span class="current">' . get_the_title() . '</span>';
		}elseif ( is_page() && !is_front_page() && !$post->post_parent ) {
			echo '<span class="current">' . get_the_title() . '</span>';
		}elseif ( is_page() && !is_front_page() && $post->post_parent ) {
			$parent_id  = $post->post_parent;
			$breadcrumbs = array();
			while ($parent_id) {
				$page = get_page($parent_id);
				$breadcrumbs[] = '<a href="' . get_permalink($page->ID) . '">' . get_the_title($page->ID) . '</a>';
				$parent_id = $page->post_parent;
			}
			$breadcrumbs = array_reverse($breadcrumbs);
			for ($i = 0; $i < count($breadcrumbs); $i++) {
				echo ''.$breadcrumbs[$i];
				if ($i != count($breadcrumbs) - 1)
					echo ' ' . $delimiter . ' ';
			}
			echo ' ' . $delimiter . ' ' . '<span class="current">' . get_the_title() . '</span>';
		}elseif ( is_author() ) {
			global $author;
			$userdata = get_userdata($author);
			echo '<span class="current">' . esc_html__('Articles posted by ', 'excitor') . $userdata->display_name . '</span>';
		}elseif ( is_404() ) {
			echo '<span class="current">' . esc_html__('Error 404', 'excitor') . '</span>';
		}

		if ( get_query_var('paged') ) {
			if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' (';
				echo ' ' . $delimiter . ' ' . esc_html__('Page', 'excitor') . ' ' . get_query_var('paged');
			if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')';
		}
    }
}

/* Display navigation to next/previous post */
if ( ! function_exists( 'excitor_post_nav' ) ) {
	function excitor_post_nav() {
		$previous = ( is_attachment() ) ? get_post( get_post()->post_parent ) : get_adjacent_post( false, '', true );
		$next     = get_adjacent_post( false, '', false );
		if ( ! $next && ! $previous ) {
			return;
		}
		?>
		<nav class="bt-blog-article-nav clearfix">
			<?php
				previous_post_link('<div class="bt-prev">'.esc_html__('Previous Post', 'excitor').'%link</div>');
				next_post_link('<div class="bt-next">'.esc_html__('Next Post', 'excitor').'%link</div>');
			?>
		</nav>
		<?php
	}
}

/* Display paginate links */
if ( ! function_exists( 'excitor_paginate_links' ) ) {
	function excitor_paginate_links($wp_query) {
		global $excitor_options;
		$pagination_style = (isset($excitor_options['pagination_style'])&&$excitor_options['pagination_style'])?'bt-style'.$excitor_options['pagination_style']:'bt-style0';
		$prev_text = (isset($excitor_options['pagination_prev_text'])&&$excitor_options['pagination_prev_text'])?'<span>'.$excitor_options['pagination_prev_text'].'</span>':'';
		$next_text = (isset($excitor_options['pagination_next_text'])&&$excitor_options['pagination_next_text'])?'<span>'.$excitor_options['pagination_next_text'].'</span>':'';
		
		?>
		<nav class="bt-pagination <?php echo esc_attr($pagination_style); ?>" role="navigation">
			<?php
				$big = 999999999; // need an unlikely integer
				echo paginate_links( array(
					'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
					'format' => '?paged=%#%',
					'current' => max( 1, get_query_var('paged') ),
					'total' => $wp_query->max_num_pages,
					'prev_text' => '<i class="fa fa-angle-left"></i>'.$prev_text,
					'next_text' => $next_text.'<i class="fa fa-angle-right"></i>',
				) );
			?>
		</nav>
		<?php
	}
}

/* Display navigation to next/previous set of posts */
if ( ! function_exists( 'excitor_paging_nav' ) ) {
	function excitor_paging_nav() {
		if ( $GLOBALS['wp_query']->max_num_pages < 2 ) {
			return;
		}

		$paged        = get_query_var( 'paged' ) ? intval( get_query_var( 'paged' ) ) : 1;
		$pagenum_link = html_entity_decode( get_pagenum_link() );
		$query_args   = array();
		$url_parts    = explode( '?', $pagenum_link );

		if ( isset( $url_parts[1] ) ) {
			wp_parse_str( $url_parts[1], $query_args );
		}

		$pagenum_link = remove_query_arg( array_keys( $query_args ), $pagenum_link );
		$pagenum_link = trailingslashit( $pagenum_link ) . '%_%';

		$format  = $GLOBALS['wp_rewrite']->using_index_permalinks() && ! strpos( $pagenum_link, 'index.php' ) ? 'index.php/' : '';
		$format .= $GLOBALS['wp_rewrite']->using_permalinks() ? user_trailingslashit( 'page/%#%', 'paged' ) : '?paged=%#%';

		?>
		<nav class="bt-pagination" role="navigation">
			<?php 
				echo paginate_links( array(
					'base'     => $pagenum_link,
					'format'   => $format,
					'total'    => $GLOBALS['wp_query']->max_num_pages,
					'current'  => $paged,
					'mid_size' => 1,
					'add_args' => array_map( 'urlencode', $query_args ),
					'prev_text' => '<i class="fa fa-angle-left"></i>',
					'next_text' => '<i class="fa fa-angle-right"></i>',
				) ); 
			?>
		</nav>
		<?php
	}
}

/* Add content before header */
if(!function_exists('excitor_add_content_before_header_func')) {
	function excitor_add_content_before_header_func() {
		global $excitor_options;

		/* Page loading */
		$site_loading = (isset($excitor_options['site_loading'])&&$excitor_options['site_loading'])?$excitor_options['site_loading']: false;
		$site_loading_spinner = (isset($excitor_options['site_loading_spinner'])&&$excitor_options['site_loading_spinner'])?$excitor_options['site_loading_spinner']: 'spinner0';
		if($site_loading){
			echo '<div id="site_loading">
					<div class="loader '.esc_attr($site_loading_spinner).'">
						<div class="dot1"></div>
						<div class="dot2"></div>
						<div class="bounce1"></div>
						<div class="bounce2"></div>
						<div class="bounce3"></div>
					</div>
				</div>';
		}
	}
	add_action( 'excitor_add_content_before_header', 'excitor_add_content_before_header_func' );
}

/* Add menu canvas, back to top, ... */
if(!function_exists('excitor_add_extra_code_wp_footer')) {
	function excitor_add_extra_code_wp_footer() {
		global $excitor_options;
		
		/*Search Popup*/
		echo '<div id="bt_search_popup"><div class="bt-search-form">'.get_search_form(false).'</div><a href="#" class="bt-close"></a></div>';
		
		/*Menu Canvas*/
		if(isset($excitor_options['menu_canvas_element'])&&$excitor_options['menu_canvas_element']){
			echo '<div id="bt_menu_canvas"><div class="bt-menu-canvas">';
				foreach($excitor_options['menu_canvas_element'] as $sidebar_id){
					dynamic_sidebar( $sidebar_id );
				}
			echo '</div></div>';
		}

		/* Back to top */
		$back_to_top = (isset($excitor_options['back_to_top'])&&$excitor_options['back_to_top'])?$excitor_options['back_to_top']: false;
		$back_to_top_style = (isset($excitor_options['back_to_top_style'])&&$excitor_options['back_to_top_style'])?$excitor_options['back_to_top_style']: 'style_1';
		if($back_to_top){
			wp_enqueue_style( 'excitor-backtop', get_template_directory_uri().'/assets/vendors/backtop/style.css', false );
			wp_enqueue_script( 'excitor-backtop', get_template_directory_uri().'/assets/vendors/backtop/backtop.min.js', array('jquery'), '', true  );
			echo '<div id="site_backtop" class="'.esc_attr($back_to_top_style).'"><i class="fa fa-arrow-up"></i></div>';
		}
	}
	add_action( 'wp_footer', 'excitor_add_extra_code_wp_footer' );
}
// Custom get sidebar function
if(!function_exists('excitor_get_sidebars')) {
	function excitor_get_sidebars() {
		$sidebars = wp_get_sidebars_widgets( true );
		$result = array();
		foreach($sidebars as $sidebar_id => $sidebar){
			if($sidebar_id != 'wp_inactive_widgets' && $sidebar_id != 'main-sidebar'){
				$result[$sidebar_id] = str_replace('-', ' ', $sidebar_id);
			}
		}
		return $result;
	}
}