✏️ 编辑:megnor-functions.php
路径:
/home/forge/kingkrunch.com/wp/wp-content/themes/foodstuff/templatemela/megnor-functions.php
大小:58.3 KB · 修改:2020-09-11 16:13:49 · 权限:0775 · 可写
← 返回目录
👁 查看
⬇ 下载
<?php /** * TemplateMela * @copyright Copyright (c) TemplateMela. (http://www.templatemela.com) * @license http://www.templatemela.com/license/ * @author TemplateMela * @version Release: 1.0 */ add_image_size('tm_gallery_thumbnail', 145, 145, true); if ( ! isset( $content_width ) ) $content_width = 1150; /** Set Default options : Theme Settings */ function tm_set_default_options() { /* General Settings */ add_option("tm_logo_image", get_stylesheet_directory_uri()."/images/megnor/logo.png"); // set logo image add_option("tm_logo_image_alt",'foodstuff'); // set logo image alt add_option("tm_mob_logo_image", get_stylesheet_directory_uri()."/images/megnor/mob-logo.png"); // set logo image add_option("tm_mob_logo_image_alt",'foodstuff'); // set logo image alt add_option("tm_showsite_description",'no'); // yes/no, control panel add_option("tm_site_icon", get_template_directory_uri()."/images/megnor/favicon.png"); // set favicon icon add_option("tm_contact_email",'support@templatemela.com'); // yes/no, control panel add_option("tm_control_panel",'no'); // yes/no, control panel add_option("tm_background_upload",""); // Default, texture specified image add_option("tm_texture",'body-bg.png'); // Default, extra texture image add_option("tm_back_repeat","no-repeat"); // background repeate add_option("tm_back_position","top+left"); // background position add_option("tm_back_attachment","scroll"); // background attachment add_option("tm_bkg_color","FFFFFF"); // background color add_option("tm_bodyfont_color","000000"); // body font color add_option("tm_bodyfont",'Roboto'); // Roboto add_option("tm_bodyfont_other",'Arial'); // Arial add_option("tm_button_color","8ab816"); // button color add_option("tm_button_opacity","1"); // button opacity add_option("tm_button_hover_color","000000"); // button hover color add_option("tm_button_hover_opacity","1"); // button opacity add_option("tm_revslider_alias",'tm_homeslider'); /* Top Bar Settings */ add_option("tm_topbar_bkg_color","FFFFFF"); // topbar_bkg_color add_option("tm_topbar_bkg_opacity","1"); // Set your background opacity add_option("tm_topbar_text_color","000000"); // topbar_text_color add_option("tm_topbar_link_color","000000"); // topbar_link_color add_option("tm_topbar_link_hover_color","8ab816"); // topbar_link_hover_color add_option("tm_topbar_welcome_text","Welcome to"); // set contact text /* Header Settings */ add_option("tm_header_background_upload", get_stylesheet_directory_uri()."/images/megnor/header-background.jpg"); // header background image add_option("tm_header_back_repeat","no-repeat"); // header background repeate add_option("tm_header_back_position","top+center"); // header background position add_option("tm_header_back_attachment","scroll"); // header background attachment add_option("tm_header_bkg_color","F3F3F3"); // header background color add_option("tm_header_bkg_opacity","1"); // header background opacity /* Navigation Menu Settings */ add_option("tm_menu_bg_color","ffffff"); // Navigation menu background color add_option("tm_menu_opacity","1"); // Navigation menu background opacity add_option("tm_menu_activelink_color","ffffff"); // Navigation menu active link color add_option("tm_menu_activelinkhover_color","ffffff"); // Navigation menu active link hover color add_option("tm_menu_parentlink_color","000000"); // Navigation menu parent link color add_option("tm_menu_parentlinkhover_color","8AB816"); // Navigation menu parent link hover color add_option("tm_menu_childlink_color","808080"); // Navigation menu child link color add_option("tm_menu_subchildlink_color","000000"); // Navigation menu sub-child link color add_option("tm_menu_childlinkhover_color","8ab816"); // Navigation menu child link hover color /* Content Settings */ add_option("tm_h1font",'Open Sans'); // h1 family google font add_option("tm_h1font_other",'Arial'); // h1 family specified font add_option("tm_h1color",'000000'); // h1 family font color add_option("tm_h2font",'Open Sans'); // h2 family google font add_option("tm_h2font_other",'Arial'); // h2 family specified font add_option("tm_h2color",'000000'); // h2 family font color add_option("tm_h3font",'Open Sans'); // h3 family google font add_option("tm_h3font_other",'Arial'); // h3 family specified font add_option("tm_h3color",'000000'); // h3 family font color add_option("tm_h4font",'Open Sans'); // h4 family google font add_option("tm_h4font_other",'Arial'); // h4 family specified font add_option("tm_h4color",'000000'); // h4 family font color add_option("tm_h5font",'Open Sans'); // h5 family google font add_option("tm_h5font_other",'Arial'); // h5 family specified font add_option("tm_h5color",'000000'); // h5 family font color add_option("tm_h6font",'Open Sans'); // h6 family google font add_option("tm_h6font_other",'Arial'); // h6 family specified font add_option("tm_h6color",'000000'); // h6 family font color add_option("tm_link_color","000000"); // link color add_option("tm_hoverlink_color","8ab816"); // link hover color add_option("tm_page_sidebar","yes"); /* Footer Settings */ add_option("tm_footerbkg_color","000000"); // footer background color add_option("tm_footer_background_upload",get_template_directory_uri()."/images/megnor/footer-bg.png");//footer background image add_option("tm_footer_back_repeat","no-repeat");//background repeat add_option("tm_footer_back_position","top+center");//background position add_option("tm_footer_back_attachment","scroll"); //background attachment add_option("tm_footerlink_color","ffffff"); // footer link text color add_option("tm_footerhoverlink_color","8ab816"); // footer link hover text color add_option("tm_footerfont",'Open Sans'); // footer google font add_option("tm_footerfont_other",'Arial'); // footer specified font add_option("tm_footer_slog",'Templatemela.'); // copyright statement : Theme By templatemela add_option("tm_footer_link",'https://www.google.co.in'); // copyright statement : Theme By templatemela /* Shop page settings */ add_option("tm_secondaryimage","yes"); add_option("tm_pagination","yes"); add_option("tm_shop_items","9"); add_option("tm_loadmore","8"); add_option("tm_viewmore","View More"); add_option("tm_nomore","No more products found !"); add_option("tm_shop_items_per_row","3"); add_option("tm_related_items","12"); add_option("tm_upsells_items","12"); add_option("tm_crosssell_items","12"); add_option("tm_shop_sidebar","no"); } add_action('init', 'tm_set_default_options'); add_action( 'after_setup_theme', 'tm_product_gallery' ); function tm_product_gallery() { add_theme_support( 'wc-product-gallery-zoom' ); add_theme_support( 'wc-product-gallery-lightbox' ); add_theme_support( 'wc-product-gallery-slider' ); } function tm_get_logo() { if (trim(get_option('tm_logo_image_alt')) != '') $logo_alt = get_option('tm_logo_image_alt') ; else $logo_alt = esc_attr(get_bloginfo('name', 'display' )); if (trim(get_option('tm_logo_image')) != ''){ echo '<img alt="'.get_option('tm_logo_image_alt').'" src="'.get_option('tm_logo_image').'" />';} else{echo '<img alt="'.get_option('tm_logo_image_alt').'" src=" '.get_template_directory_uri(). '/images/megnor/logo.png">';} } function tm_get_mob_logo() { if (trim(get_option('tm_mob_logo_image_alt')) != '') $logo_alt = get_option('tm_mob_logo_image_alt') ; else $logo_alt = esc_attr(get_bloginfo('name', 'display' )); if (trim(get_option('tm_mob_logo_image')) != ''){ echo '<img alt="'.get_option('tm_mob_logo_image_alt').'" src="'.get_option('tm_mob_logo_image').'" />';} else{echo '<img alt="'.get_option('tm_mob_logo_image_alt').'" src=" '.get_template_directory_uri(). '/images/megnor/mob-logo.png">';} } // topbar contact if ( ! function_exists( 'tm_get_topbar_contact' ) ) : function tm_get_topbar_contact() { $tm_topbar_phone = get_option('tm_topbar_phone'); $tm_topbar_phone_text = get_option('tm_topbar_phone_text'); $output = ''; $output .= '<div class="topbar-contact">'; if (!empty($tm_topbar_phone_text)) : $output .= '<span class="call-us">'.$tm_topbar_phone_text.'</span>'; endif; if (!empty($tm_topbar_phone)) : $output .= '<span class="contact-phone">'.$tm_topbar_phone.'</span>'; endif; $output .= '</div>'; echo balanceTags($output); } endif; function tm_get_sort_column() { $sort_column=''; if(trim(get_option('tm_navigation_type'))=='categories'){ if( trim(get_option('tm_navigation_sort_column')) =='id' || trim(get_option('tm_navigation_sort_column'))=='menu_order') $sort_column = 'ID'; elseif(trim(get_option('tm_navigation_sort_column'))=='name' || trim(get_option('tm_navigation_sort_column'))=='post_title') $sort_column = 'name'; elseif(trim(get_option('tm_navigation_sort_column'))=='count') $sort_column = 'count'; } elseif(trim(get_option('tm_navigation_type'))=='pages'){ if(trim(get_option('tm_navigation_sort_column'))=='id') $sort_column = 'ID'; elseif(trim(get_option('tm_navigation_sort_column'))=='menu_order') $sort_column = 'menu_order'; elseif(trim(get_option('tm_navigation_sort_column'))=='post_title' || trim(get_option('tm_navigation_sort_column'))=='name') $sort_column = 'post_title'; } return $sort_column; } function tm_get_sort_order() { $sort_order=''; if(trim(get_option('tm_navigation_sort_order'))=='asc') return 'asc'; if(trim(get_option('tm_navigation_sort_order'))=='desc') return 'desc'; return $sort_order; } function tm_get_all_categories() { global $wp_query; if (isset($wp_query->post->ID)) $postid = $wp_query->post->ID; $categories = wp_get_post_categories( $postid ); $cats = ', '; foreach($categories as $c){ $cat = get_category( $c ); $cats .= $cat->name. ','; } $cats=strtolower(rtrim($cats, " ,")); return $cats; } function tm_get_all_tags() { global $wp_query; if (isset($wp_query->post->ID)) $postid = $wp_query->post->ID; $alltags = wp_get_post_tags( $postid ); $tags = ', '; foreach($alltags as $tag){ $tags .= $tag->name. ','; } $tags=strtolower(rtrim($tags, " ,")); return $tags; } function tm_extra_head(){ $themeinfo = wp_get_theme(get_template_directory() . '/style.css'); echo '<meta name="generator" content="'.$themeinfo['Name'].' - '.$themeinfo['Version'].'" />'; } add_action('wp_head','tm_extra_head'); add_action( "admin_enqueue_scripts", 'tm_admin_scripts'); add_action( "admin_enqueue_scripts", 'tm_admin_styles'); add_action( "admin_enqueue_scripts", 'tm_admin_metabox_script'); add_action( "admin_enqueue_scripts", 'tm_admin_metabox_styles'); function tm_admin_scripts() { //Scripts wp_enqueue_script( 'tm_pscript_admin', get_template_directory_uri() . '/js/megnor/admin/pscript_admin.js'); wp_enqueue_script( 'jscolor', get_template_directory_uri() . '/js/megnor/admin/jscolor/jscolor.js'); wp_enqueue_script( 'easytabs_min', get_template_directory_uri() . '/js/megnor/admin/jquery.easytabs.min.js'); wp_enqueue_script('media-upload'); wp_enqueue_script('thickbox'); wp_register_script('tm-my-upload', get_template_directory_uri() . '/js/megnor/admin/custom.js', array('jquery','media-upload','thickbox')); wp_enqueue_script('tm-my-upload'); } function tm_admin_styles() { //Styles wp_enqueue_style('tm_admin', get_template_directory_uri() . '/css/megnor/admin/tm_admin.css'); wp_enqueue_style('tm_tab', get_template_directory_uri() . '/css/megnor/admin/tab.css'); wp_enqueue_style('thickbox'); } function tm_admin_metabox_script() { //Scripts wp_enqueue_script( 'tm_metabox_script', get_template_directory_uri() . '/js/megnor/admin/tm_metabox_script.js' ); } function tm_admin_metabox_styles() { //Styles wp_enqueue_style('tm_metabox_style', get_template_directory_uri() . '/css/megnor/admin/tm_metabox_style.css'); } function tm_add_admin_menu_separator($position) { global $menu; $index = 0; foreach($menu as $offset => $section) { if (substr($section[2],0,9)=='separator') $index++; if ($offset>=$position) { $menu[$position] = array('','read',"separator{$index}",'','wp-menu-separator'); break; } } ksort($menu); } if ( ! function_exists( 'tm_admin_header_style' ) ) : function tm_admin_header_style() {} endif; /** * Sets the post excerpt length to 40 characters. * To override this length in a child theme, remove the filter and add your own * function tied to the excerpt_length filter hook. * @return int */ function tm_excerpt_length( $length ) { return 200; } remove_filter( 'excerpt_length', 'tm_excerpt_length' ); add_filter( 'excerpt_length', 'tm_excerpt_length' ); function tm_string_limit_words($string, $word_limit) { $words = explode(' ', $string, ($word_limit + 1)); if(count($words) > $word_limit) array_pop($words); return implode(' ', $words); } /** * Returns a "Continue Reading" link for excerpts * @return string "Continue Reading" link */ function tm_continue_reading_link() { return ' <a class="read-more-link" href="'.esc_url(get_permalink()) .'">' . esc_html__( 'Read More', 'foodstuff' ) . '</a>'; } add_filter( 'excerpt_length', 'tm_excerpt_length' ); /** * Replaces "[...]" (appended to automatically generated excerpts) with an ellipsis and tm_continue_reading_link(). * To override this in a child theme, remove the filter and add your own * function tied to the excerpt_more filter hook. * @return string An ellipsis */ function tm_auto_excerpt_more( $more ) { return '…' .tm_continue_reading_link(); } add_filter( 'excerpt_more', 'tm_auto_excerpt_more' ); /** * Adds a pretty "Continue Reading" link to custom post excerpts. * To override this link in a child theme, remove the filter and add your own * function tied to the get_the_excerpt filter hook. * @return string Excerpt with a pretty "Continue Reading" link */ function tm_custom_excerpt_more( $output ) { if ( has_excerpt() && ! is_attachment() ) { $output = '…'. tm_continue_reading_link(); } return $output; } /** * Deprecated way to remove inline styles printed when the gallery shortcode is used. * This function is no longer needed or used. Use the use_default_gallery_style * filter instead, as seen above. * @deprecated Deprecated in TemplateMela for WordPress 3.1 * @return string The gallery style filter, with the styles themselves removed. */ function tm_remove_gallery_css( $css ) { return preg_replace( "#<style type='text/css'>(.*?)</style>#s", '', $css ); } // Backwards compatibility with WordPress 3.0. if ( version_compare( $GLOBALS['wp_version'], '3.3.2', '<' ) ) add_filter( 'gallery_style', 'tm_remove_gallery_css' ); /** * Return the URL for the first link found in the post content. * * @since Twenty Eleven 1.0 * @return string|bool URL or false when no link is present. */ function tm_url_grabber() { if ( ! preg_match( '/<a\s[^>]*?href=[\'"](.+?)[\'"]/is', get_the_content(), $matches ) ) return false; return esc_url_raw( $matches[1] ); } function tm_get_widget($location = '') { if ( is_active_sidebar($location) ) { dynamic_sidebar($location); } } if (version_compare( $GLOBALS['wp_version'], '3.3', '>=' )) get_template_part('templatemela/widgets'); /** * Removes the default styles that are packaged with the Recent Comments widget. * * To override this in a child theme, remove the filter and optionally add your own * function tied to the widgets_init action hook. * This function uses a filter (show_recent_comments_widget_style) new in WordPress 3.1 * to remove the default style. Using TemplateMela in WordPress 3.0 will show the styles, * but they won't have any effect on the widget in default TemplateMela styling. * */ function tm_remove_recent_comments_style() { add_filter( 'show_recent_comments_widget_style', '__return_false' ); } add_action( 'widgets_init', 'tm_remove_recent_comments_style' ); function tm_get_pagination($range = 4){ // $paged - number of the current page global $paged, $wp_query, $max_page; // How much pages do we have? if ( !$max_page ) { $max_page = $wp_query->max_num_pages; } // We need the pagination only if there are more than 1 page if($max_page > 1){ if(!$paged){ $paged = 1; } // On the first page, don't put the First page link if($paged != 1){ echo '<a class="first" href=" '. get_pagenum_link(1) .' "> << </a>'; } // To the previous page previous_posts_link(' < '); // We need the sliding effect only if there are more pages than is the sliding range if($max_page > $range){ // When closer to the beginning if($paged < $range){ for($i = 1; $i <= ($range + 1); $i++){ if($i==$paged){$class = "current number"; }else { $class = "number"; } echo "<a class='".$class."' href='" . get_pagenum_link($i). "'>$i</a>"; } } // When closer to the end elseif($paged >= ($max_page - ceil(($range/2)))){ for($i = $max_page - $range; $i <= $max_page; $i++){ if($i==$paged){$class = "current number"; }else { $class = "number"; } echo "<a class='".$class."' href='" . get_pagenum_link($i). "'>$i</a>"; } } // Somewhere in the middle elseif($paged >= $range && $paged < ($max_page - ceil(($range/2)))){ for($i = ($paged - ceil($range/2)); $i <= ($paged + ceil(($range/2))); $i++){ if($i==$paged){$class = "current number"; }else { $class = "number"; } echo "<a class='".$class."' href='" . get_pagenum_link($i). "'>$i</a>"; } } } // Less pages than the range, no sliding effect needed else{ for($i = 1; $i <= $max_page; $i++){ if($i==$paged){$class = "current number"; }else { $class = "number"; } echo "<a class='".$class."' href='" . get_pagenum_link($i). "'>$i</a>"; } } // Next page next_posts_link(' > '); // On the last page, don't put the Last page link if($paged != $max_page){ echo '<a class="last" href=" '. get_pagenum_link($max_page) .' "> >> </a>'; } } } function tm_posts_next_link_attributes($html){ $html = str_replace('<a','<a class="next-post"',$html); return $html; } function tm_posts_previous_link_attributes($html){ $html = str_replace('<a','<a class="prev-post"',$html); return $html; } add_filter('next_post_link','tm_posts_next_link_attributes',10,1); add_filter('previous_post_link','tm_posts_previous_link_attributes',10,1); function tm_get_first_post_images($post_ID){ global $post, $posts; $first_img_src = ''; ob_start(); ob_end_clean(); $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches); if (isset($matches[1][0])) $first_img_src = $matches[1][0]; if(empty($first_img_src)){ return 0; } return $first_img_src; } function tm_print_images_thumb($src,$alttext, $width=200,$height=200,$align='left') { $src = tm_mr_image_resize($src, $width, $height, true, $align, false); if( empty ( $src ) || $src == 'image_not_specified' ): $src = get_template_directory_uri()."/images/megnor/placeholder.png"; $src = tm_mr_image_resize($src, $width, $height, true, $align, false); endif; $return = ''; $return .= '<img src="'.$src.'"'; $return .= " title='$alttext' alt='$alttext' width='$width' height='$height' />"; echo balanceTags($return); } function tm_excerpt($limit) { $excerpt = explode(' ', tm_strip_images(strip_tags(get_the_excerpt())), $limit); if (count($excerpt)>=$limit) { array_pop($excerpt); $excerpt = implode(" ",$excerpt).' .<div class="read-more"><a class="read-more-link" href="'.esc_url(get_permalink()).'">'.esc_html__( 'Read More...' , 'foodstuff' ).'</a></div>'; } else { $excerpt = implode(" ",$excerpt); } $excerpt = preg_replace('`\[[^\]]*\]`','',$excerpt); return $excerpt; } function tm_blog_post_excerpt( $limit ) { $excerpt = get_the_excerpt(); $excerpt = preg_replace('`\[[^\]]*\]`','',$excerpt); $excerpt = strip_tags($excerpt); $excerpt = substr($excerpt, 0, $limit); $excerpt = substr($excerpt, 0, strripos($excerpt, " ")); return $excerpt; } function tm_portfolio_excerpt($limit) { $contents = substr(tm_strip_images(strip_tags(get_the_excerpt())),0,$limit); $excerpt = $contents; if (strlen($contents) >= $limit){ $excerpt .= '…'; } return $excerpt; } if ( ! function_exists( 'tm_go_top' ) ) : function tm_go_top(){ ?> <div class="backtotop"><a style="display: none;" id="to_top" href="#"></a></div> <?php } endif; /* Favi Icon fucntion */ if ( ! function_exists( 'tm_site_icon' ) ) { function tm_site_icon() { if ( ! function_exists( 'has_site_icon' ) || ! has_site_icon() ) { echo '<link rel="shortcut icon" type="image/png" href="'.get_option('tm_site_icon').'" />'; } else { echo '<link rel="shortcut icon" type="image/png" href="'.get_template_directory_uri().'/templatemela/favicon.ico" />'; } } } add_action('wp_head','tm_site_icon'); add_action('admin_head','tm_site_icon'); add_action('wp_head','tm_custom_css',15); if ( ! function_exists( 'tm_strip_images' ) ) : function tm_strip_images($content){ $content = preg_replace('/<img[^>]+./','',$content); return preg_replace('/<\/?a[^>]*>/','',$content); } endif; /** * Remove inline styles printed when the gallery shortcode is used. * Galleries are styled by the theme in TemplateMela's style.css. This is just * a simple filter call that tells WordPress to not use the default styles. */ add_filter( 'use_default_gallery_style', '__return_false' ); /** * Enqueue Templatemela Fonts */ function tm_load_fonts() { $fonts_url = ''; /* Translators: If there are characters in your language that are not * supported by Lato, translate this to 'off'. Do not translate * into your own language. */ $roboto = _x( 'on', 'roboto font: on or off', 'foodstuff' ); $opensans = _x( 'on', 'Open Sans: on or off', 'foodstuff' ); if ( 'off' !== $roboto || 'off' !== $opensans ) { $font_families = array(); if ( 'off' !== $roboto ) { $font_families[] = 'Roboto:300,400,700,700i,900,900i'; } if ( 'off' !== $opensans ) { $font_families[] = 'Open Sans:300,400,600i'; } $query_args = array( 'family' => urlencode( implode( '|', $font_families ) ), 'subset' => urlencode( 'latin,latin-ext' ), ); $fonts_url = esc_url( add_query_arg( $query_args, 'https://fonts.googleapis.com/css' )); } return esc_url_raw( $fonts_url ); } /* Enqueue scripts and styles. */ function tm_google_fonts() { wp_enqueue_style( 'google_fonts', tm_load_fonts(), array(), '1.0.0' ); } add_action( 'get_header', 'tm_google_fonts' ); //Load responsive.css file in the header function tm_responsive() { wp_enqueue_style('tm_responsive', get_stylesheet_directory_uri() . '/responsive.css'); } add_action('wp_footer','tm_responsive'); //dequeue css from plugins add_action('wp_print_styles', 'tm_dequeue_css_from_plugins', 100); function tm_dequeue_css_from_plugins() { wp_dequeue_style('newsletter-subscription'); } /** * Enqueue Templatemela Styles */ if ( ! function_exists( 'tm_load_styles' ) ) : function tm_load_styles() { wp_enqueue_style('tm_isotope', get_template_directory_uri() . '/css/isotop-port.css'); wp_enqueue_style('tm_custom', get_template_directory_uri() . '/css/megnor/custom.css'); wp_enqueue_style('owl.carousel', get_template_directory_uri() . '/css/megnor/owl.carousel.css'); wp_enqueue_style('owl.transitions', get_template_directory_uri() . '/css/megnor/owl.transitions.css'); wp_enqueue_style('shadowbox', get_template_directory_uri() . '/css/megnor/shadowbox.css'); wp_enqueue_style('tm_shortcode_style', get_template_directory_uri() . '/css/megnor/shortcode_style.css'); wp_enqueue_style('animate_min', get_template_directory_uri() . '/css/megnor/animate.min.css'); //Adds front end control panel css if(get_option('tm_control_panel') == 'yes'): wp_enqueue_style('tm_tm-style', get_template_directory_uri() . '/css/megnor/tm-style.css'); endif; //Adds wocommerce style if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) : wp_enqueue_style('tm_woocommerce_css', get_template_directory_uri() . '/css/megnor/woocommerce.css'); endif; } endif; add_action('get_header', 'tm_load_styles'); /** * Enqueue Templatemela Scripts */ if ( ! function_exists( 'tm_load_scripts' ) ) : function tm_load_scripts() { wp_enqueue_script( 'jqtransform', get_template_directory_uri() . '/js/megnor/jquery.jqtransform.js', array(), '', false); wp_enqueue_script( 'jqtransform_script', get_template_directory_uri() . '/js/megnor/jquery.jqtransform.script.js', array(), '', false); wp_enqueue_script( 'tm_custom_script', get_template_directory_uri() . '/js/megnor/jquery.custom.min.js', array(), '', false); wp_enqueue_script( 'isotope', get_template_directory_uri() . '/js/jquery.isotope.min.js', array(), '', false); wp_enqueue_script( 'tm_megnor', get_template_directory_uri() . '/js/megnor/megnor.min.js', array(), '', false); wp_enqueue_script( 'carousel', get_template_directory_uri() . '/js/megnor/carousel.min.js', array(), '', false); wp_enqueue_script( 'easypiechart', get_template_directory_uri() . '/js/megnor/jquery.easypiechart.min.js', array(), '', false); wp_enqueue_script( 'tm_custom', get_template_directory_uri() . '/js/megnor/custom.js', array(), '', false); wp_enqueue_script( 'owlcarousel', get_template_directory_uri() . '/js/megnor/owl.carousel.min.js', array(), '', false); wp_enqueue_script( 'formalize', get_template_directory_uri() . '/js/megnor/jquery.formalize.min.js', array(), '', false); wp_enqueue_script( 'respond', get_template_directory_uri() . '/js/megnor/respond.min.js', array(), '', false); wp_enqueue_script( 'validate', get_template_directory_uri() . '/js/megnor/jquery.validate.js', array(), '', false); wp_enqueue_script( 'shadowbox', get_template_directory_uri() . '/js/megnor/shadowbox.js', array(), '', false); wp_enqueue_script( 'waypoints', get_template_directory_uri() . '/js/megnor/waypoints.min.js', array(), '', false); wp_enqueue_script( 'megamenu', get_template_directory_uri() . '/js/megnor/jquery.megamenu.js', array(), '', false); wp_enqueue_script( 'easyResponsiveTabs', get_template_directory_uri() . '/js/megnor/easyResponsiveTabs.js', array(), '', false); wp_enqueue_script( 'jtree_min', get_template_directory_uri() . '/js/megnor/jquery.treeview.js', array(), '', false); wp_enqueue_script( 'scroll-min', get_template_directory_uri() . '/js/megnor/jquery.jscroll.min.js', array(), '', false); wp_enqueue_script( 'parallex', get_template_directory_uri() . '/js/megnor/parallex.js', array(), '', false); wp_enqueue_script( 'countUp', get_template_directory_uri() . '/js/megnor/countUp.js', array(), '', false); wp_enqueue_script( 'doubletaptogo', get_template_directory_uri() . '/js/megnor/doubletaptogo.js', array(), '', false); wp_enqueue_script( 'jquery_bxslider', get_template_directory_uri() . '/js/megnor/jquery.bxslider.js', array(), '', false); ?> <!--[if lt IE 9]> <?php wp_enqueue_script( 'tm_html5', get_template_directory_uri() . '/js/html5.js', array(), '', false); ?> <![endif]--> <?php } endif; add_action( 'wp_enqueue_scripts', 'tm_load_scripts' ); /** * Enqueue Templatemela Control Panel Scripts */ if ( ! function_exists( 'tm_load_controlpanel_script' ) ) : function tm_load_controlpanel_script() { if(get_option('tm_control_panel') == 'yes') : ?> <script type="text/javascript"> var tm_theme_path = "<?php echo get_template_directory_uri() ?>"; </script> <?php wp_enqueue_script( 'jquery_colorpicker', get_template_directory_uri() . '/js/megnor/colorpicker/colorpicker.js', array(), '', false); wp_enqueue_script( 'jquery_cookie', get_template_directory_uri() . '/js/megnor/colorpicker/jquery.cookie.js', array(), '', false); wp_enqueue_script( 'jquery_pscript', get_template_directory_uri() . '/js/megnor/colorpicker/pscript.js', array(), '', false); endif; } endif; add_action( 'wp_enqueue_scripts', 'tm_load_controlpanel_script' ); if ( ! function_exists( 'tm_breadcrumbs' ) ) : function tm_breadcrumbs() { ?> <div class="breadcrumbs"> <?php if ( function_exists('yoast_breadcrumb') ) { ?> <?php yoast_breadcrumb('<p id="breadcrumbs">','</p>'); ?> <?php } ?> </div> <?php } endif; function tm_search_form( $form ) { $form = '<form role="search" method="get" id="searchform" class="search-form" action="' . esc_url( home_url( '/' ) ) . '" > <div><label class="screen-reader-text" for="s">' . esc_html__( 'Search for:', 'foodstuff' ) . '</label> <input class="search-field" type="text" placeholder="Search.." value="' . get_search_query() . '" name="s" id="s" /> <input class="search-submit" type="submit" id="searchsubmit" value="'. esc_html__( 'Go', 'foodstuff' ) .'" /> </div> </form>'; return $form; } add_filter( 'get_search_form', 'tm_search_form' ); if ( ! function_exists( 'tm_comment' ) ) : /** * Template for comments and pingbacks. * * To override this walker in a child theme without modifying the comments template * simply create your own tm_comment(), and that function will be used instead. * * Used as a callback by wp_list_comments() for displaying the comments. */ function tm_comment( $comment, $args, $depth ) { $GLOBALS['comment'] = $comment; switch ( $comment->comment_type ) : case 'pingback' : case 'trackback' : // Display trackbacks differently than normal comments. ?> <li <?php comment_class(); ?> id="comment-<?php comment_ID(); ?>"> <p> <?php esc_html_e( 'Pingback:', 'foodstuff' ); ?> <?php comment_author_link(); ?> <?php edit_comment_link( esc_html__( '(Edit)', 'foodstuff' ), '<span class="edit-link">', '</span>' ); ?> </p> </li> <?php break; default : // Proceed with normal comments. global $post; ?> <li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>"> <div id="comment-<?php comment_ID(); ?>" class="comment-body"> <div class="alignleft"> <?php echo get_avatar( $comment, 48 ); ?> </div> <div class="author-content"> <h6><?php echo balanceTags($comment->comment_author); ?></h6> <?php edit_comment_link( esc_html__( 'Edit', 'foodstuff' ), ' ' ); ?> <div class="clearfix"></div> <abbr class="published" title=""><?php printf( esc_html__( '%1$s at %2$s', 'foodstuff' ), get_comment_date(), get_comment_time() ); ?></abbr> </div> <div class="comment-content"> <?php comment_text(); ?> <div class="reply"> <?php comment_reply_link( array_merge( $args, array( 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?> </div> </div> <?php if ( $comment->comment_approved == '0' ) : ?> <em class="comment-awaiting-moderation"> <?php esc_html_e( 'Your comment is awaiting moderation.', 'foodstuff' ); ?> </em> <br /> <?php endif; ?> </div> <!-- #comment-## --> </li> <?php break; endswitch; // end comment_type check } endif; if ( ! function_exists( 'tm_entry_meta' ) ) : /** * Print HTML with meta information for current post: categories, tags, permalink, author, and date. * * Create your own tm_entry_meta() to override in a child theme. * * @since Templatemela 1.0 * * @return void */ function tm_entry_meta() { } endif; if ( ! function_exists( 'tm_sticky_post' ) ) : function tm_sticky_post() { if ( is_sticky() && is_home() && ! is_paged() ) echo '<span class="sticky-post">' . esc_html__( 'Sticky', 'foodstuff' ) . '</span>'; } endif; if ( ! function_exists( 'tm_categories_links' ) ) : function tm_categories_links() { // Translators: used between list items, there is a space after the comma. $categories_list = get_the_category_list( esc_html__( ', ', 'foodstuff' ) ); if ( $categories_list ) { echo '<span class="categories-links"> In ' . $categories_list . '</span>'; } } endif; if ( ! function_exists( 'tm_tags_links' ) ) : function tm_tags_links() { // Translators: used between list items, there is a space after the comma. $tag_list = get_the_tag_list( '', esc_html__( ', ', 'foodstuff' ) ); if ( $tag_list ) { echo ' / <span class="tags-links"><i class="fa fa-tags"></i>' . $tag_list . ''; } } endif; if ( ! function_exists( 'tm_author_link' ) ) : function tm_author_link() { // Post author if ( 'post' == get_post_type() ) { printf( '<span class="author vcard"><i class="fa fa-pencil-square-o"></i><a class="url fn n" href="%1$s" title="%2$s" rel="author">'.esc_html__("by ",'foodstuff').'%3$s</a></span>', esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ), esc_attr( sprintf( esc_html__( 'View all posts by %s', 'foodstuff' ), get_the_author() ) ), get_the_author() ); } } endif; if ( ! function_exists( 'tm_comments_link' ) ) : function tm_comments_link() { //comments open if ( comments_open() && ! is_single() ) : echo ' / <span class="comments-link"> <i class="fa fa-comment-o"></i>'; comments_popup_link( esc_html__( 'Leave a Comment', 'foodstuff' ), esc_html__( '1 Comment', 'foodstuff' ), esc_html__( '% Comments', 'foodstuff' ) ); echo '</span>'; endif; } endif; if ( ! function_exists( 'tm_entry_date' ) ) : /** * Print HTML with date information for current post. * * Create your own tm_entry_date() to override in a child theme. * * @since Templatemela 1.0 * * @param boolean $echo (optional) Whether to echo the date. Default true. * @return string The HTML-formatted post date. */ function tm_entry_date( $echo = true ) { if ( has_post_format( array( 'chat', 'status' ) ) ) $format_prefix = _x( '%1$s on %2$s', '1: post format name. 2: date', 'foodstuff' ); else $format_prefix = '%2$s'; $date = sprintf( '<div class="meta-inner"><span class="date"><a href="%1$s" title="%2$s" rel="bookmark"><i class="fa fa-calendar-o" aria-hidden="true"></i> <time class="entry-date" datetime="%3$s">%4$s</time></a></span></div>', esc_url( get_permalink() ), esc_attr( sprintf( esc_html__( 'Permalink to %s', 'foodstuff' ), the_title_attribute( 'echo=0' ) ) ), esc_attr( get_the_date( 'c' ) ), esc_html( sprintf( $format_prefix, get_post_format_string( get_post_format() ), get_the_date() ) ) ); if ( $echo ) echo balanceTags($date); return $date; } endif; if ( ! function_exists( 'tm_post_entry_date' ) ) : function tm_post_entry_date( ) { $date = get_the_date(); $day = get_the_date('j'); $month = get_the_date('F'); $year = get_the_date('Y'); /* $hour = get_the_date('g'); $min = get_the_date('i'); $time = get_the_date('A');*/ $date = '<div class="entry-date"><div class="day"><a href="'.esc_url(get_permalink()).'">'.$month.' '.$day.',  '.$year.'</a></div></div>'; echo balanceTags($date); return $date; } endif; if ( ! function_exists( 'tm_the_attached_image' ) ) : /** * Print the attached image with a link to the next attached image. * * @since Templatemela 1.0 * * @return void */ function tm_the_attached_image() { /** * Filter the image attachment size to use. * * @since Templatemela 1.0 * * @param array $size { * @type int The attachment height in pixels. * @type int The attachment width in pixels. * } */ $attachment_size = apply_filters( 'tm_attachment_size', array( 724, 724 ) ); $next_attachment_url = wp_get_attachment_url(); $post = get_post(); /* * Grab the IDs of all the image attachments in a gallery so we can get the URL * of the next adjacent image in a gallery, or the first image (if we're * looking at the last image in a gallery), or, in a gallery of one, just the * link to that image file. */ $attachment_ids = get_posts( array( 'post_parent' => $post->post_parent, 'fields' => 'ids', 'numberposts' => -1, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID' ) ); // If there is more than 1 attachment in a gallery... if ( count( $attachment_ids ) > 1 ) { foreach ( $attachment_ids as $attachment_id ) { if ( $attachment_id == $post->ID ) { $next_id = current( $attachment_ids ); break; } } // get the URL of the next image attachment... if ( $next_id ) $next_attachment_url = get_attachment_link( $next_id ); // or get the URL of the first image attachment. else $next_attachment_url = get_attachment_link( array_shift( $attachment_ids ) ); } printf( '<a href="%1$s" title="%2$s" rel="attachment">%3$s</a>', esc_url( $next_attachment_url ), the_title_attribute( array( 'echo' => false ) ), wp_get_attachment_image( $post->ID, $attachment_size ) ); } endif; if ( ! function_exists( 'tm_posts_short_description' ) ) : function tm_posts_short_description() { $tm_posts_short_description = get_post_meta(get_the_ID(), 'tm_posts_short_description', true); if(empty($tm_posts_short_description)) $tm_posts_short_description = tm_excerpt(40); return $tm_posts_short_description; } endif; if ( ! function_exists( 'tm_posts_show_thumbnail' ) ) : function tm_posts_show_thumbnail() { $tm_posts_show_thumbnail = get_post_meta(get_the_ID(), 'tm_posts_show_thumbnail', true); if(empty($tm_posts_show_thumbnail)) $tm_posts_show_thumbnail = ''; return $tm_posts_show_thumbnail; } endif; if ( ! function_exists( 'tm_page_layout' ) ) : function tm_page_layout() { $page_layout_class = ''; global $wp_query; if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) { if(is_shop()): $page_id = wc_get_page_id('shop'); else: $page_id = $wp_query->get_queried_object_id(); endif; }else{ $page_id = $wp_query->get_queried_object_id(); } $tm_page_layout = get_post_meta($page_id, 'tm_page_layout', true); if(empty($tm_page_layout)) $tm_page_layout = ''; if($tm_page_layout == "box"): $page_layout_class = "box-page"; elseif($tm_page_layout == "wide"): $page_layout_class = "wide-page"; endif; return $page_layout_class; } endif; if ( ! function_exists( 'tm_sidebar_position' ) ) : function tm_sidebar_position() { $sidebar_class = ''; global $wp_query; if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) { if(is_shop() || is_archive()): $page_id = wc_get_page_id('shop'); else: $page_id = $wp_query->get_queried_object_id(); endif; }else{ $page_id = $wp_query->get_queried_object_id(); } $tm_sidebar_position = get_post_meta($page_id, 'tm_sidebar_position', true); if(empty($tm_sidebar_position)) $tm_sidebar_position = ''; if($tm_sidebar_position == "left"): $sidebar_class = "left-sidebar"; elseif($tm_sidebar_position == "right"): $sidebar_class = "right-sidebar"; elseif($tm_sidebar_position == "disabled"): $sidebar_class = "full-width"; endif; return $sidebar_class; } endif; if ( ! function_exists( 'tm_blog_box_display' ) ) : function tm_blog_box_display() { $main_container = ''; $tm_blog_box_display = get_post_meta(get_the_ID(), 'tm_blog_box_display', true); if(empty($tm_blog_box_display)) $tm_blog_box_display = ''; if($tm_blog_box_display == 'masonry'): $main_container = 'masonry'; elseif($tm_blog_box_display == 'grid'): $main_container = 'grid'; endif; return $main_container; } endif; if ( ! function_exists( 'tm_blog_box_columns_class' ) ) : function tm_blog_box_columns_class() { $columns_class = ''; $tm_blog_box_columns = get_post_meta(get_the_ID(), 'tm_blog_box_columns', true); if(empty($tm_blog_box_columns)) $tm_blog_box_columns = ''; if($tm_blog_box_columns == 'two'): $columns_class = 'two-col'; elseif($tm_blog_box_columns == 'three'): $columns_class = 'three-col'; elseif($tm_blog_box_columns == 'four'): $columns_class = 'four-col'; endif; return $columns_class; } endif; if ( ! function_exists( 'tm_blog_box_columns_number' ) ) : function tm_blog_box_columns_number() { $columns_number = ''; $tm_blog_box_columns = get_post_meta(get_the_ID(), 'tm_blog_box_columns', true); if(empty($tm_blog_box_columns)) $tm_blog_box_columns = ''; if($tm_blog_box_columns == 'two'): $columns_number = '2'; elseif($tm_blog_box_columns == 'three'): $columns_number = '3'; elseif($tm_blog_box_columns == 'four'): $columns_number = '4'; endif; return $columns_number; } endif; if ( ! function_exists( 'tm_blog_box_posts_per_page' ) ) : function tm_blog_box_posts_per_page() { $tm_blog_box_posts_per_page = get_post_meta(get_the_ID(), 'tm_blog_box_posts_per_page', true); if(empty($tm_blog_box_posts_per_page)) $tm_blog_box_posts_per_page = ''; return $tm_blog_box_posts_per_page; } endif; if ( ! function_exists( 'tm_blog_list_posts_per_page' ) ) : function tm_blog_list_posts_per_page() { $tm_blog_list_posts_per_page = get_post_meta(get_the_ID(), 'tm_blog_list_posts_per_page', true); if(empty($tm_blog_list_posts_per_page)) $tm_blog_list_posts_per_page = ''; return $tm_blog_list_posts_per_page; } endif; if ( ! function_exists( 'tm_blog_filter_columns_class' ) ) : function tm_blog_filter_columns_class() { $columns_class = ''; $tm_blog_filter_columns = get_post_meta(get_the_ID(), 'tm_blog_filter_columns', true); if(empty($tm_blog_filter_columns)) $tm_blog_filter_columns = ''; if($tm_blog_filter_columns == 'two'): $columns_class = 'two-col'; elseif($tm_blog_filter_columns == 'three'): $columns_class = 'three-col'; elseif($tm_blog_filter_columns == 'four'): $columns_class = 'four-col'; endif; return $columns_class; } endif; if ( ! function_exists( 'tm_blog_filter_columns_number' ) ) : function tm_blog_filter_columns_number() { $columns_number = ''; $tm_blog_filter_columns = get_post_meta(get_the_ID(), 'tm_blog_filter_columns', true); if(empty($tm_blog_filter_columns)) $tm_blog_filter_columns = ''; if($tm_blog_filter_columns == 'two'): $columns_number = '2'; elseif($tm_blog_filter_columns == 'three'): $columns_number = '3'; elseif($tm_blog_filter_columns == 'four'): $columns_number = '4'; endif; return $columns_number; } endif; if ( ! function_exists( 'tm_testimonial_box_posts_per_page' ) ) : function tm_testimonial_box_posts_per_page() { $tm_testimonial_box_posts_per_page = get_post_meta(get_the_ID(), 'tm_testimonial_box_posts_per_page', true); if(empty($tm_testimonial_box_posts_per_page)) $tm_testimonial_box_posts_per_page = ''; return $tm_testimonial_box_posts_per_page; } endif; if ( ! function_exists( 'tm_testimonial_list_posts_per_page' ) ) : function tm_testimonial_list_posts_per_page() { $tm_testimonial_list_posts_per_page = get_post_meta(get_the_ID(), 'tm_testimonial_list_posts_per_page', true); if(empty($tm_testimonial_list_posts_per_page)) $tm_testimonial_list_posts_per_page = ''; return $tm_testimonial_list_posts_per_page; } endif; if ( ! function_exists( 'tm_testimonial_box_columns_class' ) ) : function tm_testimonial_box_columns_class() { $columns_class = ''; $tm_testimonial_box_columns = get_post_meta(get_the_ID(), 'tm_testimonial_box_columns', true); if(empty($tm_testimonial_box_columns)) $tm_testimonial_box_columns = ''; if($tm_testimonial_box_columns == 'two'): $columns_class = 'two-col'; elseif($tm_testimonial_box_columns == 'three'): $columns_class = 'three-col'; elseif($tm_testimonial_box_columns == 'four'): $columns_class = 'four-col'; endif; return $columns_class; } endif; if ( ! function_exists( 'tm_testimonial_box_columns_number' ) ) : function tm_testimonial_box_columns_number() { $columns_number = ''; $tm_testimonial_box_columns = get_post_meta(get_the_ID(), 'tm_testimonial_box_columns', true); if(empty($tm_testimonial_box_columns)) $tm_testimonial_box_columns = ''; if($tm_testimonial_box_columns == 'two'): $columns_number = '2'; elseif($tm_testimonial_box_columns == 'three'): $columns_number = '3'; elseif($tm_testimonial_box_columns == 'four'): $columns_number = '4'; endif; return $columns_number; } endif; if ( ! function_exists( 'tm_staff_box_posts_per_page' ) ) : function tm_staff_box_posts_per_page() { $tm_staff_box_posts_per_page = get_post_meta(get_the_ID(), 'tm_staff_box_posts_per_page', true); if(empty($tm_staff_box_posts_per_page)) $tm_staff_box_posts_per_page = ''; return $tm_staff_box_posts_per_page; } endif; if ( ! function_exists( 'tm_staff_list_posts_per_page' ) ) : function tm_staff_list_posts_per_page() { $tm_staff_list_posts_per_page = get_post_meta(get_the_ID(), 'tm_staff_list_posts_per_page', true); if(empty($tm_staff_list_posts_per_page)) $tm_staff_list_posts_per_page = ''; return $tm_staff_list_posts_per_page; } endif; if ( ! function_exists( 'tm_staff_box_columns_class' ) ) : function tm_staff_box_columns_class() { $columns_class = ''; $tm_staff_box_columns = get_post_meta(get_the_ID(), 'tm_staff_box_columns', true); if(empty($tm_staff_box_columns)) $tm_staff_box_columns = ''; if($tm_staff_box_columns == 'two'): $columns_class = 'two-col'; elseif($tm_staff_box_columns == 'three'): $columns_class = 'three-col'; elseif($tm_staff_box_columns == 'four'): $columns_class = 'four-col'; endif; $columns_class; return $columns_class; } endif; if ( ! function_exists( 'tm_staff_box_columns_number' ) ) : function tm_staff_box_columns_number() { $columns_number = ''; $tm_staff_box_columns = get_post_meta(get_the_ID(), 'tm_staff_box_columns', true); if(empty($tm_staff_box_columns)) $tm_staff_box_columns = ''; if($tm_staff_box_columns == 'two'): $columns_number = '2'; elseif($tm_staff_box_columns == 'three'): $columns_number = '3'; elseif($tm_staff_box_columns == 'four'): $columns_number = '4'; endif; return $columns_number; } endif; if ( ! function_exists( 'tm_content_position' ) ) : function tm_content_position() { $tm_content_position = get_post_meta(get_the_ID(), 'tm_content_position', true); if(empty($tm_content_position)) $tm_content_position = ''; return $tm_content_position; } endif; if ( ! function_exists( 'tm_is_related_posts' ) ) : function tm_is_related_posts() { $tm_is_related_posts = get_post_meta(get_the_ID(), 'tm_posts_show_related_posts', true); if(empty($tm_is_related_posts)) $tm_is_related_posts = ''; return $tm_is_related_posts; } endif; if ( ! function_exists( 'tm_is_author_info' ) ) : function tm_is_author_info() { $tm_is_author_info = get_post_meta(get_the_ID(), 'tm_posts_show_author_info', true); if(empty($tm_is_author_info)) $tm_is_author_info = ''; return $tm_is_author_info; } endif; if ( ! function_exists( 'tm_shortcode_paging_nav' ) ) : function tm_shortcode_paging_nav() { $output =''; if ( $GLOBALS['wp_query']->max_num_pages > 1 ) { $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=%#%'; // Set up paginated links. $links = 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' => wp_kses( __( '<i class="fa fa-angle-left"></i>', 'foodstuff' ),tm_allowed_html()), 'next_text' => wp_kses( __( '<i class="fa fa-angle-right"></i>', 'foodstuff' ),tm_allowed_html()), ) ); if ( $links ) : $output .= '<nav class="navigation paging-navigation" role="navigation">'; $output .= '<div class="pagination loop-pagination">'; $output .= $links; $output .= '</div>'; $output .= '</nav>'; endif; } return $output; } endif; // Adds custom image height X width for small thumbnails add_image_size( 'tm-blog-posts-list', 1200, 500, true ); add_image_size( 'tm-small-thumb', 50, 50, true ); //Create HTML list of nav menu items and allow HTML tags. class Description_Walker extends Walker_Nav_Menu { function start_el(&$output, $item, $depth = 0, $args = array(), $id = 0 ) { $classes = empty ( $item->classes ) ? array () : (array) $item->classes; $class_names = join(' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) ); ! empty ( $class_names ) and $class_names = ' class="'. esc_attr( $class_names ) . '"'; // Build default menu items $output .= "<li id='menu-item-$item->ID' $class_names>"; $attributes = ''; ! empty( $item->attr_title ) and $attributes .= ' title="' . esc_attr( $item->attr_title ) .'"'; ! empty( $item->target ) and $attributes .= ' target="' . esc_attr( $item->target ) .'"'; ! empty( $item->xfn ) and $attributes .= ' rel="' . esc_attr( $item->xfn ) .'"'; ! empty( $item->url ) and $attributes .= ' href="' . esc_attr( $item->url ) .'"'; // Build the description (you may need to change the depth to 0, 1, or 2) $description = ( ! empty ( $item->description ) and 1 == $depth ) ? '<span class="nav_desc">'. $item->description . '</span>' : ''; $title = apply_filters( 'the_title', $item->title, $item->ID ); $item_output = $args->before . "<a $attributes>" . $args->link_before . $title . '</a> ' . $args->link_after . $description . $args->after; // Since $output is called by reference we don't need to return anything. $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args, $id ); } } // Allow HTML descriptions in WordPress Menu remove_filter( 'nav_menu_description', 'strip_tags' ); if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) { function tm_shop_body_classes( $classes ) { if(is_shop()) { if(isset($_SERVER['QUERY_STRING']) && $_SERVER['QUERY_STRING'] == 'left'){ $classes[] = 'shop-left-sidebar '; }elseif(isset($_SERVER['QUERY_STRING']) && $_SERVER['QUERY_STRING'] == 'right'){ $classes[] = 'shop-right-sidebar '; }elseif(isset($_SERVER['QUERY_STRING']) && $_SERVER['QUERY_STRING'] == 'full'){ $classes[] = 'shop-full-width '; }else{ $classes[] = 'shop-left-sidebar' ; } } if (get_option('tm_shop_sidebar') == 'yes') : $classes[] = 'archive-sidebar'; endif; return $classes; } add_filter( 'body_class', 'tm_shop_body_classes' ); } function tm_is_blog() { global $post; $posttype = get_post_type($post ); return ( ((is_archive()) || (is_author()) || (is_home()) || (is_tag())) && ( $posttype == 'post') ) ? true : false ; } /* Related Product settings */ function tm_related_products_args( $args ) { $no = get_option("tm_related_items"); $args['posts_per_page'] = $no; $args['columns'] = get_option('tm_shop_items_per_row'); return $args; } add_filter( 'woocommerce_output_related_products_args', 'tm_related_products_args' ); /* Upsell Product settings */ function tm_output_upsells() { $no1 = get_option("tm_upsells_items"); woocommerce_upsell_display( $no1, get_option('tm_shop_items_per_row')); } remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15 ); add_action( 'woocommerce_after_single_product_summary', 'tm_output_upsells', 15 ); /* crosssell Product settings */ function tm_output_crosssell() { $no1 = get_option("tm_crosssell_items"); woocommerce_cross_sell_display( $no1, get_option('tm_shop_items_per_row')); } remove_action( 'woocommerce_cart_collaterals', 'woocommerce_cross_sell_display', 10 ); add_action( 'woocommerce_after_cart', 'tm_output_crosssell', 10 ); function tm_product_navigation() { global $post , $previous ,$next; $current_url = get_permalink( $post->ID ); $next_text = ''; $previous_text = ''; // Get the previous and next product links $previous_link = get_permalink(get_adjacent_post(false,'',false)); $next_link = get_permalink(get_adjacent_post(false,'',true)); // Create the two links provided the product exists if ( $next_link != $current_url ) { $next = "<a href='" . esc_url($next_link) . "'>" . $next_text . "</a>"; } if ( $previous_link != $current_url ) { $previous = "<a href='" .esc_url($previous_link) . "'>" . $previous_text . "</a>"; } // Create the two links provided the product exists if ( $next_link != $current_url ) { $next_text = get_adjacent_post(false,'',true)->post_title; $next = "<a href='" .esc_url( $next_link ). "'>" . $next_text . "</a>"; } if ( $previous_link != $current_url ) { $previous_text = get_adjacent_post(false,'',false)->post_title; $previous = "<a href='" . esc_url($previous_link) . "'>" . $previous_text . "</a>"; } // Create HTML Output $output = '<div class="tm_product_nav_buttons">'; if ( $previous != '' ) $output .= '<span class="previous"> ' . $previous . '</span>'; if ( $next != '' ) $output .= '<span class="next">' . $next .'</span>'; $output .= '</div>'; // Display the final output echo balanceTags($output); } add_action( 'woocommerce_single_product_summary', 'tm_product_navigation', 5 ); /* Transfer the php data to custom js */ function tm_load_more(){ // Register the script wp_enqueue_script( 'tm_phpvariable', get_template_directory_uri() . '/js/megnor/megnorloadmore.js', array(), '', false); // Localize the script with new data $translation_array = array( 'tm_loadmore' => get_option( 'tm_loadmore' ), 'tm_pagination' => get_option( 'tm_pagination' ), 'tm_viewmore' => get_option( 'tm_viewmore' ), 'tm_nomore' => get_option( 'tm_nomore' ), ); wp_localize_script( 'tm_phpvariable', 'php_var', $translation_array ); // Enqueued script with localized data. wp_enqueue_script( 'tm_phpvariable' ); } add_action( 'wp_enqueue_scripts', 'tm_load_more' ); /* This function is used to convert hex color into rgb or rgba */ function tm_hex_to_rgba($color, $opacity = false) { $default = 'rgb(0,0,0)'; //Return default if no color provided if(empty($color)) return $default; //Sanitize $color if "#" is provided if ($color[0] == '#' ) { $color = substr( $color, 1 ); } //Check if color has 6 or 3 characters and get values if (strlen($color) == 6) { $hex = array( $color[0] . $color[1], $color[2] . $color[3], $color[4] . $color[5] ); } elseif ( strlen( $color ) == 3 ) { $hex = array( $color[0] . $color[0], $color[1] . $color[1], $color[2] . $color[2] ); } else { return $default; } //Convert hexadec to rgb $rgb = array_map('hexdec', $hex); //Check if opacity is set(rgba or rgb) if($opacity){ if(abs($opacity) > 1) $opacity = 1.0; $output = 'rgba('.implode(",",$rgb).','.$opacity.')'; } else { $output = 'rgb('.implode(",",$rgb).')'; } //Return rgb(a) color string return $output; } /* for escaping i.e wp_kses( __()); the html element update to WP 4.3.1 */ function tm_allowed_html() { $tm_allowed_html = array( 'span' => array( 'class' => array(), 'style' => array(), ), 'div' => array( 'class' => array(), 'style' => array(), ), 'a' => array( 'href' => array(), ), 'i' => array( 'class' => array(), ), ); return $tm_allowed_html; } /* To display Wishlist in product block */ if ( in_array( 'yith-woocommerce-wishlist/init.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ): if( ! function_exists( 'tm_add_to_wishlist_in_product' ) ){ function tm_add_to_wishlist_in_product(){ echo do_shortcode( "[yith_wcwl_add_to_wishlist]" ); } } add_action( 'woocommerce_after_shop_loop_item', 'tm_add_to_wishlist_in_product', 11 ); endif; /* To display Compare in product block */ if ( in_array( 'yith-woocommerce-compare/init.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ): if( ! function_exists( 'tm_add_to_compare_in_product' ) ){ function tm_add_to_compare_in_product(){ echo do_shortcode( "[yith_compare_button]" ); } } add_action( 'woocommerce_after_shop_loop_item', 'tm_add_to_compare_in_product', 11 ); endif; /* Function to add cms tab in product single page */ function tm_single_product_cms_tab(){ if (is_active_sidebar('single-product-cms-tab')) : ?> <div class="product-cms-tab-block"> <?php dynamic_sidebar('single-product-cms-tab'); ?> </div> <?php endif; } add_action( 'woocommerce_after_add_to_cart_form', 'tm_single_product_cms_tab' ); /* Function to show cart header cart dropdown in all pages */ function tm_always_show_cart() { return false; } add_filter( 'woocommerce_widget_cart_is_hidden', 'tm_always_show_cart', 40, 0 ); remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_rating', 5 ); add_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_rating', 12 ); // Display the additional product images function tm_second_product_thumbnail() { global $product, $woocommerce,$id; $attachment_ids = $product->get_gallery_image_ids(); $id = get_post_thumbnail_id( $product->get_id() ); if(get_option( 'tm_secondaryimage' ) == "yes"){ if ( count($attachment_ids) > 0 ) { $secondary_image_id = $attachment_ids['0']; echo wp_get_attachment_image( $secondary_image_id, 'shop_catalog', '', $attr = array( 'class' => 'secondary-image attachment-shop-catalog' ) ); } else{ echo wp_get_attachment_image( $id, 'shop_catalog', '', $attr = array( 'class' => 'secondary-image attachment-shop-catalog' ) ); } } else{ echo wp_get_attachment_image( $id, 'shop_catalog', '', $attr = array( 'class' => 'secondary-image attachment-shop-catalog' ) ); } } add_action( 'woocommerce_before_shop_loop_item_title', 'tm_second_product_thumbnail'); ?>
💾 保存
取消
保存为 UTF-8,换行统一为 LF