Last active
June 27, 2021 08:30
-
-
Save jadealombro/6a3a09d4b41f9a7a2d497eb0a5913d4b to your computer and use it in GitHub Desktop.
Add Excerpt to Recent Posts Element of X Theme
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Displaying Excerpt in Recent Posts | |
// ============================================================================= | |
function x_shortcode_recent_posts_v2( $atts ) { | |
extract( shortcode_atts( array( | |
'id' => '', | |
'class' => '', | |
'style' => '', | |
'type' => 'post', | |
'count' => '', | |
'category' => '', | |
'offset' => '', | |
'orientation' => '', | |
'show_excerpt' => 'true', | |
'no_sticky' => '', | |
'no_image' => '', | |
'fade' => '' | |
), $atts, 'x_recent_posts' ) ); | |
$allowed_post_types = apply_filters( 'cs_recent_posts_post_types', array( 'post' => 'post' ) ); | |
$type = ( isset( $allowed_post_types[$type] ) ) ? $allowed_post_types[$type] : 'post'; | |
$id = ( $id != '' ) ? 'id="' . esc_attr( $id ) . '"' : ''; | |
$class = ( $class != '' ) ? 'x-recent-posts cf ' . esc_attr( $class ) : 'x-recent-posts cf'; | |
$style = ( $style != '' ) ? 'style="' . $style . '"' : ''; | |
$count = ( $count != '' ) ? $count : 3; | |
$category = ( $category != '' ) ? $category : ''; | |
$category_type = ( $type == 'post' ) ? 'category_name' : 'portfolio-category'; | |
$offset = ( $offset != '' ) ? $offset : 0; | |
$orientation = ( $orientation != '' ) ? ' ' . $orientation : ' horizontal'; | |
$show_excerpt = ( $show_excerpt == 'true' ); | |
$no_sticky = ( $no_sticky == 'true' ); | |
$no_image = ( $no_image == 'true' ) ? $no_image : ''; | |
$fade = ( $fade == 'true' ) ? $fade : 'false'; | |
$js_params = array( | |
'fade' => ( $fade == 'true' ) | |
); | |
$data = cs_generate_data_attributes( 'recent_posts', $js_params ); | |
$output = "<div {$id} class=\"{$class}{$orientation}\" {$style} {$data} data-fade=\"{$fade}\" >"; | |
$q = new WP_Query( array( | |
'orderby' => 'date', | |
'post_type' => "{$type}", | |
'posts_per_page' => "{$count}", | |
'offset' => "{$offset}", | |
"{$category_type}" => "{$category}", | |
'ignore_sticky_posts' => $no_sticky | |
) ); | |
if ( $q->have_posts() ) : while ( $q->have_posts() ) : $q->the_post(); | |
if ( $no_image == 'true' ) { | |
$image_output = ''; | |
$image_output_class = 'no-image'; | |
} else { | |
$image = wp_get_attachment_image_src( get_post_thumbnail_id(), 'thumbnail' ); | |
$bg_image = ( $image[0] != '' ) ? ' style="background-image: url(' . $image[0] . ');"' : ''; | |
$image_output = '<div class="x-recent-posts-img"' . $bg_image . '></div>'; | |
$image_output_class = 'with-image'; | |
} | |
$excerpt = ( $show_excerpt ) ? '<div class="x-recent-posts-excerpt"><p>' . preg_replace('/<a.*?more-link.*?<\/a>/', '', cs_get_raw_excerpt() ) . '</p></div>' : ''; | |
$output .= '<a class="x-recent-post' . $count . ' ' . $image_output_class . '" href="' . get_permalink( get_the_ID() ) . '" title="' . esc_attr( sprintf( csi18n('shortcodes.recent-posts-permalink'), the_title_attribute( 'echo=0' ) ) ) . '">' | |
. '<article id="post-' . get_the_ID() . '" class="' . implode( ' ', get_post_class() ) . '">' | |
. '<div class="entry-wrap">' | |
. $image_output | |
. '<div class="x-recent-posts-content">' | |
. '<h3 class="h-recent-posts">' . get_the_title() . '</h3>' | |
. '<span class="recent-posts-author">' .the_author() . '</span>' | |
. '<span class="x-recent-posts-date">' . get_the_date() . '</span>' | |
. $excerpt | |
. '</div>' | |
. '</div>' | |
. '</article>' | |
. '</a>'; | |
endwhile; endif; wp_reset_postdata(); | |
$output .= '</div>'; | |
return $output; | |
} | |
add_filter('wp_head', 'x_recent_posts_excerpt'); | |
function x_recent_posts_excerpt() { | |
remove_shortcode( 'x_recent_posts' ); | |
remove_shortcode( 'recent_posts' ); | |
add_shortcode( 'x_recent_posts', 'x_shortcode_recent_posts_v2' ); | |
add_shortcode( 'recent_posts', 'x_shortcode_recent_posts_v2' ); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment