implode('&family=', $font_families), 'display' => 'swap', ), 'https://fonts.googleapis.com/css2'); return esc_url_raw($fonts_url); } endif; if (!function_exists('avenews_get_option')) : /** * Get customizer value by key. * * @param string $key Option key. * @return mixed Option value. * @since 1.0.0 * */ function avenews_get_option($key) { $key_value = ''; if (!$key) { return $key_value; } $default_values = avenews_get_default_customizer_values(); $customizer_values = get_theme_mod('avenews_options'); $customizer_values = wp_parse_args($customizer_values, $default_values); $key_value = (isset($customizer_values[$key])) ? $customizer_values[$key] : ''; return $key_value; } endif; /** * Avenews SVG Icon helper functions * * @package Avenews * @since 1.0.0 */ if (!function_exists('avenews_theme_svg')): /** * Output and Get Theme SVG. * Output and get the SVG markup for an icon in the Avenews_SVG_Icons class. * * @param string $svg_name The name of the icon. * @param string $group The group the icon belongs to. * @param string $color Color code. */ function avenews_theme_svg($svg_name, $return = false) { if ($return) { return avenews_get_theme_svg($svg_name); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Escaped in avenews_get_theme_svg();. } else { echo avenews_get_theme_svg($svg_name); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Escaped in avenews_get_theme_svg();. } } endif; if (!function_exists('avenews_get_theme_svg')): /** * Get information about the SVG icon. * * @param string $svg_name The name of the icon. * @param string $group The group the icon belongs to. * @param string $color Color code. */ function avenews_get_theme_svg($svg_name) { // Make sure that only our allowed tags and attributes are included. $svg = wp_kses( Avenews_SVG_Icons::get_svg($svg_name), array( 'svg' => array( 'class' => true, 'xmlns' => true, 'width' => true, 'height' => true, 'viewbox' => true, 'aria-hidden' => true, 'role' => true, 'focusable' => true, ), 'path' => array( 'fill' => true, 'fill-rule' => true, 'd' => true, 'transform' => true, ), 'polygon' => array( 'fill' => true, 'fill-rule' => true, 'points' => true, 'transform' => true, 'focusable' => true, ), 'line' => array( 'stroke' => true, 'x1' => true, 'x2' => true, 'y1' => true, 'y2' => true, ), ) ); if (!$svg) { return false; } return $svg; } endif; if (!function_exists('avenews_svg_escape')): /** * Get information about the SVG icon. * * @param string $svg_name The name of the icon. * @param string $group The group the icon belongs to. * @param string $color Color code. */ function avenews_svg_escape($input) { // Make sure that only our allowed tags and attributes are included. $svg = wp_kses( $input, array( 'svg' => array( 'class' => true, 'xmlns' => true, 'width' => true, 'height' => true, 'viewbox' => true, 'aria-hidden' => true, 'role' => true, 'focusable' => true, ), 'path' => array( 'fill' => true, 'fill-rule' => true, 'd' => true, 'transform' => true, ), 'polygon' => array( 'fill' => true, 'fill-rule' => true, 'points' => true, 'transform' => true, 'focusable' => true, ), ) ); if (!$svg) { return false; } return $svg; } endif; if (!function_exists('avenews_social_menu_icon')) : function avenews_social_menu_icon($item_output, $item, $depth, $args) { // Add Icon if (isset($args->theme_location) && 'social-menu' === $args->theme_location) { $svg = Avenews_SVG_Icons::get_theme_svg_name($item->url); if (empty($svg)) { $svg = avenews_theme_svg('link', $return = true); } $item_output = str_replace($args->link_after, '' . $svg, $item_output); } return $item_output; } endif; add_filter('walker_nav_menu_start_el', 'avenews_social_menu_icon', 10, 4); if (!function_exists('avenews_comment_form_custom_fields')) : /** * Custom comment form fields. * * @param array $fields * * @return array */ function avenews_comment_form_custom_fields($fields) { $commenter = wp_get_current_commenter(); $req = get_option('require_name_email'); $aria_req = ($req ? ' aria-required="true"' : ''); if (is_user_logged_in()) { $fields = array_merge($fields, array( 'author' => '
', 'email' => '', )); } else { $fields = array_merge($fields, array( 'author' => '', )); } return $fields; } endif; add_filter('comment_form_default_fields', 'avenews_comment_form_custom_fields'); if (!function_exists('avenews_get_general_layouts')) : /** * Returns general layout options. * * @return array Options array. * @since 1.0.0 * */ function avenews_get_general_layouts() { $options = apply_filters('avenews_general_layouts', array( 'left-sidebar' => array( 'url' => get_template_directory_uri() . '/assets/images/left_sidebar.png', 'label' => esc_html__('Left Sidebar', 'avenews'), ), 'right-sidebar' => array( 'url' => get_template_directory_uri() . '/assets/images/right_sidebar.png', 'label' => esc_html__('Right Sidebar', 'avenews'), ), 'no-sidebar' => array( 'url' => get_template_directory_uri() . '/assets/images/no_sidebar.png', 'label' => esc_html__('No Sidebar', 'avenews'), ), )); return $options; } endif; if (!function_exists('avenews_post_category_list')) : // Post Category List. function avenews_post_category_list($select_cat = true) { $post_cat_lists = get_categories( array( 'hide_empty' => '0', 'exclude' => '1', ) ); $post_cat_cat_array = array(); if ($select_cat) { $post_cat_cat_array[''] = esc_html__('-- Select Category --', 'avenews'); } foreach ($post_cat_lists as $post_cat_list) { $post_cat_cat_array[$post_cat_list->slug] = $post_cat_list->name; } return $post_cat_cat_array; } endif; if (!function_exists('avenews_woocommerce_product_cat')) : // Post Category List. function avenews_woocommerce_product_cat() { $post_cat_lists = get_categories( array( 'taxonomy' => 'product_cat', 'orderby' => 'name', 'show_count' => 0, 'pad_counts' => 0, 'hide_empty' => '0', 'exclude' => '1', ) ); $post_cat_cat_array = array(); $post_cat_cat_array[''] = esc_html__('--Select Category--', 'avenews'); foreach ($post_cat_lists as $post_cat_list) { $post_cat_cat_array[$post_cat_list->slug] = $post_cat_list->name; } return $post_cat_cat_array; } endif; if (!function_exists('avenews_get_archive_layouts')) : /** * Returns archive layout options. * * @return array Options array. * @since 1.0.0 * */ function avenews_get_archive_layouts() { $options = apply_filters('avenews_archive_layouts', array( 'archive_style_1' => array( 'url' => get_template_directory_uri() . '/assets/images/archive-style-1.png', 'label' => esc_html__('Archive Layout Full', 'avenews'), ), 'archive_style_2' => array( 'url' => get_template_directory_uri() . '/assets/images/archive-style-2.png', 'label' => esc_html__('Archive Layout Half', 'avenews'), ), 'archive_style_3' => array( 'url' => get_template_directory_uri() . '/assets/images/archive-style-3.png', 'label' => esc_html__('Archive Layout Mixed', 'avenews'), ), 'archive_style_4' => array( 'url' => get_template_directory_uri() . '/assets/images/archive-style-4.png', 'label' => esc_html__('Archive Layout Tiles', 'avenews'), ), )); return $options; } endif; if (!function_exists('avenews_get_page_layout')) : /** * Get Page Layout based on the post meta or customizer value * * @return string Page Layout. * @since 1.0.0 * */ function avenews_get_page_layout() { global $post; $page_layout = ''; // For homepage regardless of static page or latest posts if (is_front_page()) { return avenews_get_option('front_page_layout'); } // For Posts page chosen on reading settings if (is_home()) { $page_layout = avenews_get_option('global_sidebar_layout'); return $page_layout; } // Fetch from customizer if everything else fails if (empty($page_layout)) { $page_layout = avenews_get_option('global_sidebar_layout'); } if (is_single() || is_page()) { $avenews_post_sidebar = esc_attr(get_post_meta($post->ID, 'avenews_post_sidebar_option', true)); if ($avenews_post_sidebar == 'global-sidebar' || empty($avenews_post_sidebar)) { $page_layout = avenews_get_option('global_sidebar_layout'); } else { $page_layout = $avenews_post_sidebar; } } return $page_layout; } endif; if (!function_exists('avenews_get_footer_layouts')) : /** * Returns footer layout options. * * @return array Options array. * @since 1.0.0 * */ function avenews_get_footer_layouts() { $options = apply_filters('avenews_footer_layouts', array( 'footer_layout_1' => array( 'url' => get_template_directory_uri() . '/assets/images/widget-column-3.png', 'label' => esc_html__('Three Columns', 'avenews'), ), 'footer_layout_2' => array( 'url' => get_template_directory_uri() . '/assets/images/widget-column-2.png', 'label' => esc_html__('Two Columns', 'avenews'), ) )); return $options; } endif; if (!function_exists('avenews_print_first_instance_of_block')): /** Print the first instance of a block in the content, and then break away. * @param string $block_name The full block type name, or a partial match. * Example: `core/image`, `core-embed/*`. * @param string|null $content The content to search in. Use null for get_the_content(). * @param int $instances How many instances of the block will be printed (max). Default 1. * @return bool Returns true if a block was located & printed, otherwise false. */ function avenews_print_first_instance_of_block($block_name, $content = null, $instances = 1) { $instances_count = 0; $blocks_content = ''; if (!$content) { $content = get_the_content(); } // Parse blocks in the content. $blocks = parse_blocks($content); // Loop blocks. foreach ($blocks as $block) { // Sanity check. if (!isset($block['blockName'])) { continue; } // Check if this the block matches the $block_name. $is_matching_block = false; // If the block ends with *, try to match the first portion. if ('*' === $block_name[-1]) { $is_matching_block = 0 === strpos($block['blockName'], rtrim($block_name, '*')); } else { $is_matching_block = $block_name === $block['blockName']; } if ($is_matching_block) { // Increment count. $instances_count++; // Add the block HTML. $blocks_content .= render_block($block); // Break the loop if the $instances count was reached. if ($instances_count >= $instances) { break; } } } if ($blocks_content) { /** This filter is documented in wp-includes/post-template.php */ echo apply_filters('the_content', $blocks_content); // phpcs:ignore WordPress.Security.EscapeOutput return true; } return false; } endif; if (!function_exists('avenews_excerpt_length') || (defined('DOING_AJAX'))) { function avenews_excerpt_length($excerpt_length) { if (is_admin()) { return $excerpt_length; } $custom_length = absint(avenews_get_option('excerpt_length')); if (absint($custom_length) > 0) { $excerpt_length = absint($custom_length); } return $excerpt_length; } } add_filter('excerpt_length', 'avenews_excerpt_length', 999); function avenews_gravatar_alt($avenews_gravatar) { if (have_comments()) { $alt = get_comment_author(); } else { $alt = get_the_author_meta('display_name'); } $avenews_gravatar = str_replace('alt=\'\'', 'alt=\'Avatar for ' . $alt . '\'', $avenews_gravatar); return $avenews_gravatar; } add_filter('get_avatar', 'avenews_gravatar_alt'); if (!function_exists('avenews_excerpt_more') && !is_admin() || (defined('DOING_AJAX'))): /** * Implement read more in excerpt. * * @param string $more The string shown within the more link. * @return string The excerpt. * @since 1.0.0 * */ function avenews_excerpt_more($more) { $excerpt_read_more = avenews_get_option('excerpt_read_more'); $flag_apply_excerpt_read_more = apply_filters('avenews_filter_excerpt_read_more', true); if (true !== $flag_apply_excerpt_read_more) { return $more; } $enable_excerpt_read_more = avenews_get_option('enable_excerpt_read_more'); if ($enable_excerpt_read_more != 1) { return ''; } $output = $more; $read_more_text = esc_html($excerpt_read_more); if (!empty($read_more_text)) { $output = ' ' . esc_html($read_more_text) . ''; $output = apply_filters('avenews_filter_read_more_link', $output); } return $output; } add_filter('excerpt_more', 'avenews_excerpt_more'); endif; if (!function_exists('avenews_force_dark_mode')) { function avenews_force_dark_mode() { if (avenews_get_option('enable_always_dark_mode') == true) { echo "data-theme='dark'"; } } } if (!function_exists('avenews_social_share')): /** * Social Share **/ function avenews_social_share() { $enable_facebook = avenews_get_option('enable_facebook'); $enable_twitter = avenews_get_option('enable_twitter'); $enable_pinterest = avenews_get_option('enable_pinterest'); $enable_linkedin = avenews_get_option('enable_linkedin'); $enable_telegram = avenews_get_option('enable_telegram'); $enable_reddit = avenews_get_option('enable_reddit'); $enable_stumbleupon = avenews_get_option('enable_stumbleupon'); $enable_whatsapp = avenews_get_option('enable_whatsapp'); $enable_email = avenews_get_option('enable_email'); if ($enable_facebook || $enable_twitter || $enable_pinterest || $enable_linkedin || $enable_email || $enable_telegram || $enable_reddit || $enable_stumbleupon || $enable_whatsapp) { $permalink = urlencode(get_the_permalink()); $post_title = html_entity_decode(get_the_title(), ENT_COMPAT, 'UTF-8'); $media_url = urlencode(get_the_post_thumbnail_url(get_the_ID(), 'full')); ?> 'post', 'posts_per_page' => 6, 'post__not_in' => get_option("sticky_posts"))); if ($lead_post_query->have_posts()): ?>