/home/blackyak/www/wordpress/wp-content/themes/travivu/includes/functions.php
<?php
function travivu_id(){
if(class_exists('WooCommerce') && is_shop()){
$pid = wc_get_page_id('shop');
}elseif(is_page() || is_singular()){
$pid = get_the_ID();
}else{
$pid = '';
}
return $pid;
}
function travivu_list_header_layout(){
$layouts = array();
$layouts[''] = esc_html__('-- Select Layout --', 'travivu');
$layouts['_default_active'] = esc_html__('_Default Header Layout Actived', 'travivu');
if(class_exists('GVA_Layout_Model')){
$page_layouts = GVA_Layout_Model::getInstance()->get_templates('header_layout');
if($page_layouts){
foreach ($page_layouts as $item) {
$layouts[$item['id']] = $item['title'];
}
}
}
return $layouts;
}
function travivu_list_footer_layout(){
$layouts = array();
$layouts[''] = esc_html__('-- Select Layout --', 'travivu');
$layouts['_default_active'] = esc_html__('_Default Footer Layout Actived', 'travivu');
if(class_exists('GVA_Layout_Model')){
$page_layouts = GVA_Layout_Model::getInstance()->get_templates('footer_layout');
if($page_layouts){
foreach ($page_layouts as $item) {
$layouts[$item['id']] = $item['title'];
}
}
}
return $layouts;
}
function travivu_get_single_listing_layout(){
$layouts = array();
$layouts[''] = esc_html__('-- Select Layout --', 'travivu');
$layouts['_default_active'] = esc_html__('_Default Single Template Actived', 'travivu');
if(class_exists('GVA_Layout_Model')){
$page_layouts = GVA_Layout_Model::getInstance()->get_templates('listing_single_layout', 'title', 'desc');
if($page_layouts){
foreach ($page_layouts as $item) {
$layouts[$item['id']] = $item['title'];
}
}
}
return $layouts;
}
function travivu_general_breadcrumbs() {
$delimiter = '';
$home = esc_html__('Home', 'travivu');
$before = '<li class="active">';
$after = '</li>';
$breadcrumb = '';
if(!is_home() && !is_front_page() || is_paged()) {
$breadcrumb .= '<ol class="breadcrumb">';
global $post;
$breadcrumb .= '<li><a href="' . esc_url(home_url()) . '">' . $home . '</a> ' . $delimiter . '</li> ';
if(is_category()){
global $wp_query;
$cat_obj = $wp_query->get_queried_object();
$thisCat = $cat_obj->term_id;
$thisCat = get_category($thisCat);
$parentCat = get_category($thisCat->parent);
if ($thisCat->parent != 0) $breadcrumb .= (get_category_parents($parentCat, TRUE, ' ' . $delimiter . ' '));
$breadcrumb .= $before . single_cat_title('', false) . $after;
}elseif(is_day()){
$breadcrumb .= '<li><a href="' . esc_url(get_year_link(get_the_time('Y'))) . '">' . get_the_time('Y') . '</a>' . ' ' . $delimiter . ' ' . '</li>';
$breadcrumb .= '<li><a href="' . esc_url(get_month_link(get_the_time('Y'), get_the_time('m'))) . '">' . get_the_time('F') . '</a>' . ' ' . $delimiter . ' ' . '</li>';
$breadcrumb .= $before . get_the_time('d') . $after;
}elseif(is_month()){
$breadcrumb .= '<li><a href="' . esc_url(get_year_link(get_the_time('Y'))) . '">' . get_the_time('Y') . '</a>' . ' ' . $delimiter . ' ' . '</li>';
$breadcrumb .= $before . get_the_time('F') . $after;
}elseif(is_year()){
$breadcrumb .= $before . get_the_time('Y') . $after;
}elseif( is_search() || get_query_var('s')){
$breadcrumb .= $before . esc_html__('Search results for', 'travivu') . '"' . htmlentities(get_search_query()) . '"' . $after;
}elseif(is_single() && !is_attachment()){
if ( get_post_type() != 'post' ) {
if(get_the_title()){
$breadcrumb .= $before . get_the_title() . $after;
}
}else{
$cat = get_the_category(); $cat = $cat[0];
$breadcrumb .= $before . get_category_parents($cat, TRUE, '') . $after;
}
}elseif(!is_single() && !is_page() && get_post_type() != 'post' && !is_404()){
$post_type = get_post_type_object(get_post_type());
if( $post_type ){
$breadcrumb .= $before . $post_type->labels->singular_name . $after;
}
}elseif(is_attachment()){
$parent = get_post($post->post_parent);
$cat = get_the_category($parent->ID);
if(isset($cat[0]) && $cat[0]){
$cat = $cat[0];
$breadcrumb .= get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
}
$breadcrumb .= '<li><a href="' . esc_url(get_permalink($parent)) . '">' . $parent->post_title . '</a></li> ' . $delimiter . ' ';
$breadcrumb .= $before . get_the_title() . $after;
}elseif(is_page() && !$post->post_parent){
$breadcrumb .= $before . get_the_title() . $after;
}elseif(is_page() && $post->post_parent){
$parent_id = $post->post_parent;
$breadcrumbs = array();
while ($parent_id) {
$page = get_page($parent_id);
$breadcrumbs[] = '<li><a href="' . esc_url(get_permalink($page->ID)) . '">' . get_the_title($page->ID) . '</a></li>';
$parent_id = $page->post_parent;
}
$breadcrumbs = array_reverse($breadcrumbs);
foreach ($breadcrumbs as $crumb) $breadcrumb .= ($crumb) . ' ' . $delimiter . ' ';
$breadcrumb .= $before . get_the_title() . $after;
}elseif(is_tag()){
$breadcrumb .= $before . esc_html__('Posts tagged', 'travivu') . '"' . single_tag_title('', false) . '"' . $after;
}elseif(is_author()){
global $author;
$userdata = get_userdata($author);
if($userdata){
$breadcrumb .= $before . esc_html__('Articles posted by', 'travivu') . $userdata->display_name . $after;
}
}elseif(is_404()){
$breadcrumb .= $before . esc_html__('Error 404', 'travivu') . $after;
}
if(get_query_var('paged')){
$breadcrumb .= $before . esc_html__('Page','travivu') . ' ' . get_query_var('paged') . $after;
}
$breadcrumb .= '</ol>';
echo html_entity_decode($breadcrumb);
}
}
function travivu_comment_nav() {
if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) :
?>
<nav class="navigation comment-navigation" role="navigation">
<h2 class="screen-reader-text"><?php esc_html__( 'Comment navigation', 'travivu' ); ?></h2>
<div class="nav-links">
<?php
if ( $prev_link = get_previous_comments_link( esc_html__( 'Older Comments', 'travivu' ) ) ) :
printf( '<div class="nav-previous">%s</div>', $prev_link );
endif;
if ( $next_link = get_next_comments_link( esc_html__( 'Newer Comments', 'travivu' ) ) ) :
printf( '<div class="nav-next">%s</div>', $next_link );
endif;
?>
</div>
</nav>
<?php
endif;
}
function travivu_category_count( $links ) {
$links = str_replace( '(', '<span class="count">(', $links );
$links = str_replace( ')', ')</span>', $links );
return $links;
}
add_filter( 'wp_list_categories', 'travivu_category_count' );
function travivu_archive_count($links) {
$links = str_replace( ' (', '<span class="count">(', $links );
$links = str_replace( ')', ')</span>', $links );
return $links;
}
add_filter( 'get_archives_link', 'travivu_archive_count' );
function travivu_limit_words($word_limit, $string, $string_second = ''){
$string = !empty($string) ? esc_html($string) : esc_html($string_second);
if(!empty($string)){
$words = explode(' ', $string, ($word_limit + 1));
if(count($words) > $word_limit)
array_pop($words);
return implode(' ', $words);
}
return '';
}
function travivu_get_options(){
global $travivu_theme_options;
return $travivu_theme_options;
}
function travivu_get_option($key, $default = ''){
global $travivu_theme_options;
if(isset($travivu_theme_options[$key]) && $travivu_theme_options[$key]){
return $travivu_theme_options[$key];
}else{
return $default;
}
}
function travivu_random_id($length=4){
$characters = '0123456789abcdefghijklmnopqrstuvwxyz';
$string = '';
for ($i = 0; $i < $length; $i++) {
$string .= $characters[rand(0, strlen($characters) - 1)];
}
return $string;
}
function travivu_convert_hextorgb($hex, $alpha = false) {
$hex = str_replace('#', '', $hex);
if ( strlen($hex) == 6 ){
$rgb['r'] = hexdec(substr($hex, 0, 2));
$rgb['g'] = hexdec(substr($hex, 2, 2));
$rgb['b'] = hexdec(substr($hex, 4, 2));
}else if ( strlen($hex) == 3 ){
$rgb['r'] = hexdec(str_repeat(substr($hex, 0, 1), 2));
$rgb['g'] = hexdec(str_repeat(substr($hex, 1, 1), 2));
$rgb['b'] = hexdec(str_repeat(substr($hex, 2, 1), 2));
}else {
$rgb['r'] = '0';
$rgb['g'] = '0';
$rgb['b'] = '0';
}
if ($alpha) {
$rgb['a'] = $alpha;
}
return $rgb;
}
function travivu_image_attach($post_id, $key, $single = true, $thumbnail = 'thumbnail') {
$result = false;
$attach = get_post_meta(get_the_ID(), $key, $single);
if($attach){
if( !$single ){
$result = array();
foreach ($attach as $id) {
$result[] = wp_get_attachment_image_src($id, $thumbnail);
}
}else{
$result = wp_get_attachment_image_src($attach, $thumbnail);
}
}
return $result;
}
function travivu_get_post_value($key, $default = ""){
$result = '';
if( isset($_POST[$key]) && $_POST[$key] ){
$result = $_POST[$key];
}else{
$result = $default;
}
return $result;
}
function travivu_usort_term_cmp($a, $b){
return $b->term_id - $a->term_id;;
}
function travivu_star_rendering( int $star_num, float $rating = 0): string{
$ceil = ceil($rating);
$floor = floor($rating);
if ( $star_num <= $floor || ($star_num == $ceil && ($rating + 0.5) > $ceil) ){
$star_img = '<i class="fas fa-star"></i>';
} elseif ( $star_num == $ceil ){
$star_img = '<i class="fas fa-star-half-alt"></i>';
} else {
$star_img = '<i class="far fa-star"></i>';
}
$output = '<span class="star star-'.$star_num.'" data-rating-val="'.$star_num.'">'.$star_img.'</span>';
return $output;
}