Current Path : /home/theafprt/conviviality360.com/wp-content/themes/salient/nectar/helpers/ |
Current File : /home/theafprt/conviviality360.com/wp-content/themes/salient/nectar/helpers/blog.php |
<?php /** * Salient blog related functions * * @package Salient WordPress Theme * @subpackage helpers * @version 10.5 */ // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Store views on blog posts. * * @since 9.0 */ if ( ! function_exists( 'nectar_set_post_views' ) ) { function nectar_set_post_views() { global $post; if ( get_post_type() === 'post' && is_single() ) { $post_id = $post->ID; if ( ! empty( $post_id ) ) { $the_view_count = get_post_meta( $post_id, 'nectar_blog_post_view_count', true ); if ( $the_view_count != '' ) { $the_view_count = intval( $the_view_count ); $the_view_count++; update_post_meta( $post_id, 'nectar_blog_post_view_count', $the_view_count ); } else { $the_view_count = 0; delete_post_meta( $post_id, 'nectar_blog_post_view_count' ); add_post_meta( $post_id, 'nectar_blog_post_view_count', '0' ); } } } } } add_action( 'wp_head', 'nectar_set_post_views' ); /** * Custom Excerpt. * * @since 3.0 */ if ( ! function_exists( 'nectar_excerpt' ) ) { function nectar_excerpt( $limit ) { if ( has_excerpt() ) { $the_excerpt = get_the_excerpt(); $the_excerpt = preg_replace( '/\[[^\]]+\]/', '', $the_excerpt ); // strip shortcodes, keep shortcode content return wp_trim_words( $the_excerpt, $limit ); } else { $the_content = get_the_content(); $the_content = preg_replace( '/\[[^\]]+\]/', '', $the_content ); // strip shortcodes, keep shortcode content return wp_trim_words( $the_content, $limit ); } } } /** * Remove the page jump when clicking read more button * * @since 3.0 */ function nectar_remove_more_jump_link( $link ) { $offset = strpos( $link, '#more-' ); if ( $offset ) { $end = strpos( $link, '"', $offset ); } if ( $end ) { $link = substr_replace( $link, '', $offset, $end - $offset ); } return $link; } add_filter( 'the_content_more_link', 'nectar_remove_more_jump_link' ); /** * Remove rel attribute from the category list * * @since 3.0 */ function nectar_remove_category_list_rel( $output ) { return str_replace( ' rel="category tag"', '', $output ); } add_filter( 'wp_list_categories', 'nectar_remove_category_list_rel' ); add_filter( 'the_category', 'nectar_remove_category_list_rel' ); /** * Blog social sharing. * * @deprecated 10.5 Use nectar_social_sharing_output() * @see salient social plugin */ function nectar_blog_social_sharing() { // Output moved to "Salient Social" plugin. } /** * Next/Prev post pagination output. * * @since 4.0 */ if( !function_exists('nectar_next_post_display') ) { function nectar_next_post_display() { global $post; global $nectar_options; $post_header_style = ( ! empty( $nectar_options['blog_header_type'] ) ) ? $nectar_options['blog_header_type'] : 'default'; $post_pagination_style = ( ! empty( $nectar_options['blog_next_post_link_style'] ) ) ? $nectar_options['blog_next_post_link_style'] : 'fullwidth_next_only'; $post_pagination_style_output = ( $post_pagination_style === 'contained_next_prev' ) ? 'fullwidth_next_prev' : $post_pagination_style; $full_width_content_class = ( $post_pagination_style === 'contained_next_prev' ) ? '' : 'full-width-content'; $blog_next_post_link_order = ( ! empty( $nectar_options['blog_next_post_link_order'] ) ) ? $nectar_options['blog_next_post_link_order'] : 'default'; $next_post = get_previous_post(); if ( ! empty( $next_post ) && ! empty( $nectar_options['blog_next_post_link'] ) && $nectar_options['blog_next_post_link'] === '1' || $post_pagination_style === 'contained_next_prev' && ! empty( $nectar_options['blog_next_post_link'] ) && $nectar_options['blog_next_post_link'] === '1' || $post_pagination_style === 'fullwidth_next_prev' && ! empty( $nectar_options['blog_next_post_link'] ) && $nectar_options['blog_next_post_link'] === '1' ) { ?> <div data-post-header-style="<?php echo esc_attr( $post_header_style ); ?>" class="blog_next_prev_buttons wpb_row vc_row-fluid <?php echo esc_attr( $full_width_content_class ); ?> standard_section" data-style="<?php echo esc_attr( $post_pagination_style_output ); ?>" data-midnight="light"> <?php if ( ! empty( $next_post ) ) { $bg = get_post_meta( $next_post->ID, '_nectar_header_bg', true ); $bg_color = get_post_meta( $next_post->ID, '_nectar_header_bg_color', true ); } else { $bg = ''; $bg_color = ''; } if ( $post_pagination_style == 'fullwidth_next_prev' || $post_pagination_style == 'contained_next_prev' ) { // next & prev if( $blog_next_post_link_order === 'reverse' ) { $previous_post = get_previous_post(); $next_post = get_next_post(); } else { $previous_post = get_next_post(); $next_post = get_previous_post(); } $hidden_class = ( empty( $previous_post ) ) ? 'hidden' : null; $only_class = ( empty( $next_post ) ) ? ' only' : null; echo '<ul class="controls"><li class="previous-post ' . $hidden_class . $only_class . '">'; if ( ! empty( $previous_post ) ) { $previous_post_id = $previous_post->ID; $bg = get_post_meta( $previous_post_id, '_nectar_header_bg', true ); if ( ! empty( $bg ) ) { // page header echo '<div class="post-bg-img" style="background-image: url(' . $bg . ');"></div>'; } elseif ( has_post_thumbnail( $previous_post_id ) ) { // featured image $post_thumbnail_id = get_post_thumbnail_id( $previous_post_id ); $post_thumbnail_url = wp_get_attachment_url( $post_thumbnail_id ); echo '<div class="post-bg-img" style="background-image: url(' . esc_url( $post_thumbnail_url ) . ');"></div>'; } echo '<a href="' . esc_url( get_permalink( $previous_post_id ) ) . '"></a><h3><span>' . esc_html__( 'Previous Post', 'salient' ) . '</span><span class="text">' . wp_kses_post( $previous_post->post_title ) . ' <svg class="next-arrow" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 39 12"><line class="top" x1="23" y1="-0.5" x2="29.5" y2="6.5" stroke="#ffffff;"></line><line class="bottom" x1="23" y1="12.5" x2="29.5" y2="5.5" stroke="#ffffff;"></line></svg><span class="line"></span></span></h3>'; } echo '</li>'; $hidden_class = ( empty( $next_post ) ) ? 'hidden' : null; $only_class = ( empty( $previous_post ) ) ? ' only' : null; echo '<li class="next-post ' . $hidden_class . $only_class . '">'; if ( ! empty( $next_post ) ) { $next_post_id = $next_post->ID; $bg = get_post_meta( $next_post_id, '_nectar_header_bg', true ); if ( ! empty( $bg ) ) { // page header echo '<div class="post-bg-img" style="background-image: url(' . $bg . ');"></div>'; } elseif ( has_post_thumbnail( $next_post_id ) ) { // featured image $post_thumbnail_id = get_post_thumbnail_id( $next_post_id ); $post_thumbnail_url = wp_get_attachment_url( $post_thumbnail_id ); echo '<div class="post-bg-img" style="background-image: url(' . esc_url( $post_thumbnail_url ) . ');"></div>'; } echo '<a href="' . esc_url( get_permalink( $next_post_id ) ) . '"></a><h3><span>' . esc_html__( 'Next Post', 'salient' ) . '</span><span class="text">' . wp_kses_post( $next_post->post_title ) . ' <svg class="next-arrow" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 39 12"><line class="top" x1="23" y1="-0.5" x2="29.5" y2="6.5" stroke="#ffffff;"></line><line class="bottom" x1="23" y1="12.5" x2="29.5" y2="5.5" stroke="#ffffff;"></line></svg><span class="line"></span></span></h3>'; } echo '</li></ul>'; } else { // next only if ( ! empty( $bg ) ) { // page header echo '<div class="post-bg-img" style="background-image: url(' . esc_url( $bg ) . ');"></div>'; } elseif ( has_post_thumbnail( $next_post->ID ) ) { // featured image $post_thumbnail_id = get_post_thumbnail_id( $next_post->ID ); $post_thumbnail_url = wp_get_attachment_url( $post_thumbnail_id ); echo '<div class="post-bg-img" style="background-image: url(' . esc_url( $post_thumbnail_url ) . ');"></div>'; } ?> <div class="col span_12 dark left"> <div class="inner"> <?php if( $blog_next_post_link_order === 'reverse' ) { echo '<span><i>' . esc_html__( 'Previous Post', 'salient' ) . '</i></span>'; } else { echo '<span><i>' . esc_html__( 'Next Post', 'salient' ) . '</i></span>'; } previous_post_link( '%link', '<h3>%title</h3>' ); ?> </div> </div> <span class="bg-overlay"></span> <span class="full-link"><?php previous_post_link( '%link' ); ?></span> <?php } ?> </div> <?php } } } /** * Related posts output. * * @since 8.0 */ if( !function_exists('nectar_related_post_display') ) { function nectar_related_post_display() { global $post; global $nectar_options; $using_related_posts = ( ! empty( $nectar_options['blog_related_posts'] ) && $nectar_options['blog_related_posts'] === '1' ) ? true : false; if ( $using_related_posts === false ) { return; } $current_categories = get_the_category( $post->ID ); if ( $current_categories ) { $category_ids = array(); foreach ( $current_categories as $individual_category ) { $category_ids[] = $individual_category->term_id; } $relatedBlogPosts = array( 'category__in' => $category_ids, 'post__not_in' => array( $post->ID ), 'showposts' => 3, 'ignore_sticky_posts' => 1, ); $related_posts_query = new WP_Query( $relatedBlogPosts ); $related_post_count = $related_posts_query->post_count; if ( $related_post_count < 2 ) { return; } $span_num = ( $related_post_count == 2 ) ? 'span_6' : 'span_4'; $related_title_text = esc_html__( 'Related Posts', 'salient' ); $related_post_title_option = ( ! empty( $nectar_options['blog_related_posts_title_text'] ) ) ? wp_kses_post( $nectar_options['blog_related_posts_title_text'] ) : 'Related Posts'; switch ( $related_post_title_option ) { case 'related_posts': $related_title_text = esc_html__( 'Related Posts', 'salient' ); break; case 'similar_posts': $related_title_text = esc_html__( 'Similar Posts', 'salient' ); break; case 'you_may_also_like': $related_title_text = esc_html__( 'You May Also Like', 'salient' ); break; case 'recommended_for_you': $related_title_text = esc_html__( 'Recommended For You', 'salient' ); break; } $hidden_title_class = null; if ( $related_post_title_option === 'hidden' ) { $hidden_title_class = 'hidden'; } $using_post_pag = ( ! empty( $nectar_options['blog_next_post_link'] ) && $nectar_options['blog_next_post_link'] === '1' ) ? 'true' : 'false'; $related_post_style = ( ! empty( $nectar_options['blog_related_posts_style'] ) ) ? esc_html( $nectar_options['blog_related_posts_style'] ) : 'material'; echo '<div class="row vc_row-fluid full-width-section related-post-wrap" data-using-post-pagination="' . esc_attr( $using_post_pag ) . '" data-midnight="dark"> <div class="row-bg-wrap"><div class="row-bg"></div></div> <h3 class="related-title ' . $hidden_title_class . '">' . wp_kses_post( $related_title_text ) . '</h3><div class="row span_12 blog-recent related-posts columns-' . esc_attr( $related_post_count ) . '" data-style="' . esc_attr( $related_post_style ) . '" data-color-scheme="light">'; if ( $related_posts_query->have_posts() ) : while ( $related_posts_query->have_posts() ) : $related_posts_query->the_post(); ?> <div class="col <?php echo esc_attr( $span_num ); ?>"> <div <?php post_class( 'inner-wrap' ); ?>> <?php if ( has_post_thumbnail() ) { $related_image_size = ( $related_post_count == 2 ) ? 'wide_photography' : 'portfolio-thumb'; echo '<a href="' . esc_url( get_permalink() ) . '" class="img-link"><span class="post-featured-img">' . get_the_post_thumbnail( $post->ID, $related_image_size, array( 'title' => '' ) ) . '</span></a>'; } ?> <?php echo '<span class="meta-category">'; $categories = get_the_category(); if ( ! empty( $categories ) ) { $output = null; foreach ( $categories as $category ) { $output .= '<a class="' . esc_attr( $category->slug ) . '" href="' . esc_url( get_category_link( $category->term_id ) ) . '">' . esc_html( $category->name ) . '</a>'; } echo trim( $output ); } echo '</span>'; ?> <a class="entire-meta-link" href="<?php the_permalink(); ?>"></a> <div class="article-content-wrap"> <div class="post-header"> <span class="meta"> <?php if ( $related_post_style != 'material' ) { echo get_the_date(); } ?> </span> <h3 class="title"><?php the_title(); ?></h3> </div><!--/post-header--> <?php if ( function_exists( 'get_avatar' ) && $related_post_style === 'material' ) { echo '<div class="grav-wrap">' . get_avatar( get_the_author_meta( 'email' ), 70, null, get_the_author() ) . '<div class="text"> <a href="' . get_author_posts_url( $post->post_author ) . '">' . get_the_author() . '</a><span>' . get_the_date() . '</span></div></div>'; } ?> </div> <?php if ( $related_post_style != 'material' ) { ?> <div class="post-meta"> <span class="meta-author"> <a href="<?php echo get_author_posts_url( get_the_author_meta( 'ID' ) ); ?>"> <i class="icon-default-style icon-salient-m-user"></i> <?php the_author(); ?></a> </span> <?php if ( comments_open() ) { ?> <span class="meta-comment-count"> <a href="<?php comments_link(); ?>"> <i class="icon-default-style steadysets-icon-chat-3"></i> <?php comments_number( '0', '1', '%' ); ?></a> </span> <?php } ?> </div> <?php } ?> </div> </div> <?php endwhile; endif; echo '</div></div>'; wp_reset_postdata(); }// if has categories } } /** * Excerpt length. * * @since 3.0 */ if ( ! function_exists( 'excerpt_length' ) ) { function excerpt_length( $length ) { global $nectar_options; $excerpt_length = ( ! empty( $nectar_options['blog_excerpt_length'] ) ) ? intval( $nectar_options['blog_excerpt_length'] ) : 30; return $excerpt_length; } } add_filter( 'excerpt_length', 'excerpt_length', 999 ); /** * Custom excerpt ending characters. * * @since 3.0 */ if ( ! function_exists( 'nectar_excerpt_more' ) ) { function nectar_excerpt_more( $more ) { return '...'; } } add_filter( 'excerpt_more', 'nectar_excerpt_more' ); /** * Grab IDs from gallery shortcode * * @since 5.0 */ if ( ! function_exists( 'nectar_grab_ids_from_gallery' ) ) { function nectar_grab_ids_from_gallery() { global $post; if ( $post != null ) { // if WP 5.0+ block editor if ( function_exists( 'parse_blocks' ) ) { if ( false !== strpos( $post->post_content, '<!-- wp:' ) ) { $post_blocks = parse_blocks( $post->post_content ); // loop through and look for gallery foreach ( $post_blocks as $key => $block ) { // gallery block found if ( isset( $block['blockName'] ) && isset( $block['innerHTML'] ) && $block['blockName'] == 'core/gallery' ) { preg_match_all( '/data-id="([^"]*)"/', $block['innerHTML'], $id_matches ); if ( $id_matches && isset( $id_matches[1] ) ) { return $id_matches[1]; } } //gallery block found end } //foreach post block loop end } //if the post appears to be using gutenberg } $attachment_ids = array(); $pattern = '\[(\[?)(gallery)(?![\w-])([^\]\/]*(?:\/(?!\])[^\]\/]*)*?)(?:(\/)\]|\](?:([^\[]*+(?:\[(?!\/\2\])[^\[]*+)*+)\[\/\2\])?)(\]?)'; $ids = array(); $portfolio_extra_content = get_post_meta( $post->ID, '_nectar_portfolio_extra_content', true ); if ( preg_match_all( '/' . $pattern . '/s', $post->post_content, $matches ) ) { $count = count( $matches[3] ); // in case there is more than one gallery in the post. for ( $i = 0; $i < $count; $i++ ) { $atts = shortcode_parse_atts( $matches[3][ $i ] ); if ( isset( $atts['ids'] ) ) { $attachment_ids = explode( ',', $atts['ids'] ); $ids = array_merge( $ids, $attachment_ids ); } } } if ( preg_match_all( '/' . $pattern . '/s', $portfolio_extra_content, $matches ) ) { $count = count( $matches[3] ); for ( $i = 0; $i < $count; $i++ ) { $atts = shortcode_parse_atts( $matches[3][ $i ] ); if ( isset( $atts['ids'] ) ) { $attachment_ids = explode( ',', $atts['ids'] ); $ids = array_merge( $ids, $attachment_ids ); } } } return $ids; } else { $ids = array(); return $ids; } } } /** * Fixing filtering for shortcodes * * @since 1.0 */ if ( ! function_exists( 'nectar_shortcode_empty_paragraph_fix' ) ) { function nectar_shortcode_empty_paragraph_fix( $content ) { $array = array( '<p>[' => '[', ']</p>' => ']', ']<br />' => ']', ); $content = strtr( $content, $array ); return $content; } } add_filter( 'the_content', 'nectar_shortcode_empty_paragraph_fix' ); /** * Remove default entry class position * * @since 1.0 */ if ( ! function_exists( 'nectar_remove_hentry_cssclass' ) ) { function nectar_remove_hentry_cssclass( $classes ) { $classes = array_diff( $classes, array( 'hentry' ) ); return $classes; } } add_filter( 'post_class', 'nectar_remove_hentry_cssclass' );