Last active
August 23, 2018 19:33
-
-
Save michaelbourne/a785cdd96df37d92db3ad9a145a89067 to your computer and use it in GitHub Desktop.
Add Excerpt to Recent Posts Shortcode
This file contains hidden or 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
// 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' => '', | |
'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 : ''; | |
if( $type == 'post' ){ | |
$category_type = 'category_name'; | |
} elseif ($type == 'x-portfolio') { | |
$category_type = 'portfolio-category'; | |
} elseif ($type == 'special_offers') { | |
$category_type = 'category_name'; | |
} | |
$offset = ( $offset != '' ) ? $offset : 0; | |
$orientation = ( $orientation != '' ) ? ' ' . $orientation : ' horizontal'; | |
$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}" | |
) ); | |
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(), 'entry-cropped' ); | |
$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'; | |
} | |
$output .= '<a class="x-recent-post' . $count . ' ' . $image_output_class . '" href="' . get_permalink( get_the_ID() ) . '" title="' . esc_attr( sprintf( __( 'Permalink to: "%s"', '__x__' ), 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="x-recent-posts-excerpt">' . strip_tags( get_the_excerpt() ) . '</span>' | |
. '</div>' | |
. '</div>' | |
. '</article>' | |
. '</a>'; | |
endwhile; endif; wp_reset_postdata(); | |
$output .= '</div>'; | |
return $output; | |
} | |
add_filter('wp_head', 'custom_recent_posts'); | |
function custom_recent_posts() { | |
remove_shortcode( 'x_recent_posts' ); | |
add_shortcode( 'x_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