'; } } add_action( 'wp_head', 'catch_vogue_pingback_header' ); /** * Adds Hero Content background CSS */ function catch_vogue_hero_content_bg_css() { $background = get_theme_mod( 'catch_vogue_hero_content_bg_image' ); $css = ''; if ( $background ) { $image = ' background-image: url("' . esc_url( $background ) . '");'; // Background Position. $position_x = get_theme_mod( 'catch_vogue_hero_content_bg_position_x' ); $position_y = get_theme_mod( 'catch_vogue_hero_content_bg_position_y' ); if ( ! in_array( $position_x, array( 'left', 'center', 'right' ), true ) ) { $position_x = 'left'; } if ( ! in_array( $position_y, array( 'top', 'center', 'bottom' ), true ) ) { $position_y = 'top'; } $position = ' background-position: ' . esc_attr( $position_x ) . ' ' . esc_attr( $position_y ) . ';'; // Background Repeat. $repeat = get_theme_mod( 'catch_vogue_hero_content_bg_repeat', 'repeat' ); $repeat = ' background-repeat: ' . esc_attr( $repeat ) . ';'; // Background Scroll. $attachment = get_theme_mod( 'catch_vogue_hero_content_bg_attachment', 1 ); if ( $attachment ) { $attachment = 'scroll'; } else { $attachment = 'fixed'; } $attachment = ' background-attachment: ' . esc_attr( $attachment ) . ';'; // Background Size. $size = get_theme_mod( 'catch_vogue_hero_content_bg_size', 'auto' ); $size = ' background-size: ' . esc_attr( $size ) . ';'; $css = $image . $position . $repeat . $attachment . $size; } if ( '' !== $css ) { $css = '.hero-content-wrapper { ' . $css . '}'; } wp_add_inline_style( 'catch-vogue-style', $css ); } add_action( 'wp_enqueue_scripts', 'catch_vogue_hero_content_bg_css', 11 ); /** * Adds header image overlay for each section */ function catch_vogue_header_image_overlay_css() { $css = ''; $overlay = get_theme_mod( 'catch_vogue_header_media_opacity', '20' ); $overlay_bg = $overlay / 100; if ( '20' !== $overlay ) { $css = '.custom-header:after { background-color: rgba(0, 0, 0, ' . esc_attr( $overlay_bg ) . '); } '; // Dividing by 100 as the option is shown as % for user } wp_add_inline_style( 'catch-vogue-style', $css ); } add_action( 'wp_enqueue_scripts', 'catch_vogue_header_image_overlay_css', 11 ); /** * Remove first post from blog as it is already show via recent post template */ function catch_vogue_alter_home( $query ) { if ( $query->is_home() && $query->is_main_query() ) { $cats = get_theme_mod( 'catch_vogue_front_page_category' ); if ( is_array( $cats ) && ! in_array( '0', $cats ) ) { $query->query_vars['category__in'] = $cats; } } } add_action( 'pre_get_posts', 'catch_vogue_alter_home' ); /** * Function to add Scroll Up icon */ function catch_vogue_scrollup() { $disable_scrollup = get_theme_mod( 'catch_vogue_display_scrollup', 1 ); if ( ! $disable_scrollup ) { return; } echo ' ' ; } add_action( 'wp_footer', 'catch_vogue_scrollup', 1 ); if ( ! function_exists( 'catch_vogue_content_nav' ) ) : /** * Display navigation/pagination when applicable * * @since Catch Vogue 1.0 */ function catch_vogue_content_nav() { global $wp_query; // Don't print empty markup in archives if there's only one page. if ( $wp_query->max_num_pages < 2 && ( is_home() || is_archive() || is_search() ) ) { return; } $pagination_type = get_theme_mod( 'catch_vogue_pagination_type', 'default' ); /** * Check if navigation type is Jetpack Infinite Scroll and if it is enabled, else goto default pagination * if it's active then disable pagination */ if ( ( 'infinite-scroll' === $pagination_type ) && class_exists( 'Jetpack' ) && Jetpack::is_module_active( 'infinite-scroll' ) ) { return false; } if ( 'numeric' === $pagination_type && function_exists( 'the_posts_pagination' ) ) { the_posts_pagination( array( 'prev_text' => esc_html__( 'Previous', 'catch-vogue' ), 'next_text' => esc_html__( 'Next', 'catch-vogue' ), 'before_page_number' => '' . esc_html__( 'Page', 'catch-vogue' ) . ' ', ) ); } else { the_posts_navigation(); } } endif; // catch_vogue_content_nav /** * Check if a section is enabled or not based on the $value parameter * @param string $value Value of the section that is to be checked * @return boolean return true if section is enabled otherwise false */ function catch_vogue_check_section( $value ) { global $wp_query; // Get Page ID outside Loop $page_id = absint( $wp_query->get_queried_object_id() ); // Front page displays in Reading Settings $page_for_posts = absint( get_option( 'page_for_posts' ) ); return ( 'entire-site' == $value || ( ( is_front_page() || ( is_home() && $page_for_posts !== $page_id ) ) && 'homepage' == $value ) ); } /** * Return the first image in a post. Works inside a loop. * @param [integer] $post_id [Post or page id] * @param [string/array] $size Image size. Either a string keyword (thumbnail, medium, large or full) or a 2-item array representing width and height in pixels, e.g. array(32,32). * @param [string/array] $attr Query string or array of attributes. * @return [string] image html * * @since Catch Vogue 1.0 */ function catch_vogue_get_first_image( $postID, $size, $attr, $src = false ) { ob_start(); ob_end_clean(); $image = ''; $output = preg_match_all( '//i', get_post_field( 'post_content', $postID ) , $matches ); if( isset( $matches[1][0] ) ) { //Get first image $first_img = $matches[1][0]; if ( $src ) { //Return url of src is true return $first_img; } return ''; } return false; } function catch_vogue_get_theme_layout() { $layout = ''; if ( is_page_template( 'templates/full-width-page.php' ) ) { $layout = 'no-sidebar-full-width'; } elseif ( is_page_template( 'templates/right-sidebar.php' ) ) { $layout = 'right-sidebar'; } else { $layout = get_theme_mod( 'catch_vogue_default_layout', 'right-sidebar' ); if ( is_front_page() ) { $layout = get_theme_mod( 'catch_vogue_homepage_layout', 'no-sidebar-full-width' ); } elseif ( is_home() || is_archive() || is_search() ) { $layout = get_theme_mod( 'catch_vogue_archive_layout', 'right-sidebar' ); } } return $layout; } function catch_vogue_get_posts_columns() { $columns = 'layout-one'; if ( is_front_page() ) { $columns = 'layout-three'; } return $columns; } function catch_vogue_get_sidebar_id() { $sidebar = ''; $layout = catch_vogue_get_theme_layout(); if ( 'no-sidebar-full-width' === $layout ) { return $sidebar; } if ( is_active_sidebar( 'sidebar-1' ) ) { $sidebar = 'sidebar-1'; // Primary Sidebar. } return $sidebar; } /** * Featured content posts */ function catch_vogue_get_featured_posts() { $number = get_theme_mod( 'catch_vogue_featured_content_number', 3 ); $post_list = array(); $args = array( 'posts_per_page' => $number, 'post_type' => 'post', 'ignore_sticky_posts' => 1, // ignore sticky posts. ); // Get valid number of posts. $args['post_type'] = 'featured-content'; for ( $i = 1; $i <= $number; $i++ ) { $post_id = ''; $post_id = get_theme_mod( 'catch_vogue_featured_content_cpt_' . $i ); if ( $post_id && '' !== $post_id ) { $post_list = array_merge( $post_list, array( $post_id ) ); } } $args['post__in'] = $post_list; $args['orderby'] = 'post__in'; $featured_posts = get_posts( $args ); return $featured_posts; } /** * Services content posts */ function catch_vogue_get_services_posts() { $type = 'ect-service'; $number = get_theme_mod( 'catch_vogue_service_number', 6 ); $post_list = array(); $args = array( 'posts_per_page' => $number, 'post_type' => 'post', 'ignore_sticky_posts' => 1, // ignore sticky posts. ); // Get valid number of posts. $args['post_type'] = $type; for ( $i = 1; $i <= $number; $i++ ) { $post_id = ''; $post_id = get_theme_mod( 'catch_vogue_service_cpt_' . $i ); if ( $post_id && '' !== $post_id ) { $post_list = array_merge( $post_list, array( $post_id ) ); } } $args['post__in'] = $post_list; $args['orderby'] = 'post__in'; $services_posts = get_posts( $args ); return $services_posts; } if ( ! function_exists( 'catch_vogue_sections' ) ) : /** * Display Sections on header and footer with respect to the section option set in catch_vogue_sections_sort */ function catch_vogue_sections( $selector = 'header' ) { get_template_part( 'template-parts/slider/content', 'display' ); get_template_part( 'template-parts/header/header', 'media' ); get_template_part( 'template-parts/featured-content/display', 'featured' ); get_template_part( 'template-parts/hero-content/content','hero' ); get_template_part( 'template-parts/services/display', 'services' ); get_template_part( 'template-parts/testimonials/display', 'testimonial' ); get_template_part( 'template-parts/portfolio/display', 'portfolio' ); } endif;