Tagged: x
-
AuthorPosts
-
December 21, 2016 at 8:36 pm #1301295
LewisWallisParticipantHi there, I am working on a website for my client which can be seen here: http://plutusportfolio.com/
I would like to add an excerpt under the recent posts which are displayed on the home page using the short code (I have enabled the excerpt using: enable_excerpt=”true”).
Although I did find code on the forum that works (code found here) it also cancels out other code that I already have in my Child Theme’s functions.php file.
So my question is: How can I add an excerpt without damaging the existing code in the Child Theme’s functions.php file.
Many thanks
Lewis
By the way, the code that I currently have in my Child Theme’s functions.php file is this (I have removed the excerpt related code as it was conflicting):
<?php
// =============================================================================
// FUNCTIONS.PHP
// —————————————————————————–
// Overwrite or add your own custom functions to X in this file.
// =============================================================================// =============================================================================
// TABLE OF CONTENTS
// —————————————————————————–
// 01. Enqueue Parent Stylesheet
// 02. Additional Functions
// =============================================================================// Enqueue Parent Stylesheet
// =============================================================================add_filter( ‘x_enqueue_parent_stylesheet’, ‘__return_true’ );
// Additional Functions
// =============================================================================function custom_post_bg_image () {
if( is_single() ) {
if (has_post_thumbnail( $post->ID )) {
$image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), ‘single-post-thumbnail’ );
?><style>
.single .x-header-landmark {
margin: 0px auto 0;
height: 300px;
border: none;
background-color: #transparent;
background-image: url(‘<?php echo $image[0]; ?>’);
background-size: cover;
background-position: 50% 50%;
background-repeat: no-repeat;}
</style>
<?php
}}}add_action(‘wp_head’, ‘custom_post_bg_image’);
// Updated Recent Post and Portfolio element
// =============================================================================
function updated_shortcode_recent_posts( $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(), ‘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’;
}if ( get_post_type() == ‘x-portfolio’ ) {
$button = ‘<span class=”x-btn x-btn-square x-btn-regular x-btn-block”>View Investment</span>’;
} elseif (get_post_type() == ‘post’) {
$button = ‘<span class=”x-btn x-btn-square x-btn-regular x-btn-block”>View Investment</span>’;
} else {
$button = ”;
}// $excerpt = ( $show_excerpt ) ? ‘<div class=”x-recent-posts-excerpt”><p>’ . preg_replace(‘/<a.*?more-link.*?<\/a>/’, ”, cs_get_raw_excerpt() ) . ‘</p></div>’ : ”;
endwhile; endif; wp_reset_postdata();
$output .= ‘</div>’;
return $output;
}add_action(‘init’, ‘apply_custom_shortcode_recent_posts’);
function apply_custom_shortcode_recent_posts() {
remove_shortcode( ‘x_recent_posts’ );
add_shortcode( ‘x_recent_posts’, ‘updated_shortcode_recent_posts’ );
}
// =============================================================================December 21, 2016 at 8:38 pm #1301297
LewisWallisParticipantThis reply has been marked as private.December 21, 2016 at 11:01 pm #1301386
Paul RModeratorHi Lewis,
Please change the excerpt code in your child theme’s functions.php file to this.
// Updated Recent Post and Portfolio element // ============================================================================= function updated_shortcode_recent_posts( $atts ) { extract( shortcode_atts( array( 'id' => '', 'class' => '', 'style' => '', 'type' => 'post', 'count' => '', 'category' => '', 'offset' => '', 'orientation' => '', 'show_excerpt' => 'false', '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(), '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'; } if ( get_post_type() == 'x-portfolio' ) { $button = '<span class="x-btn x-btn-square x-btn-regular x-btn-block">View Investment</span>'; } elseif (get_post_type() == 'post') { $button = '<span class="x-btn x-btn-square x-btn-regular x-btn-block">View Investment</span>'; } else { $button = ''; } $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( __( 'Permalink to: "%s"', 'cornerstone' ), 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-date">' . get_the_date() . '</span>' . $excerpt . $button . '</div>' . '</div>' . '</article>' . '</a>'; endwhile; endif; wp_reset_postdata(); $output .= '</div>'; return $output; } add_action('init', 'apply_custom_shortcode_recent_posts'); function apply_custom_shortcode_recent_posts() { remove_shortcode( 'x_recent_posts' ); add_shortcode( 'x_recent_posts', 'updated_shortcode_recent_posts' ); } // =============================================================================Then use this shortcode to display an excerpt.
[x_recent_posts count="4" show_excerpt="true"]Hope that helps.
January 3, 2017 at 12:01 pm #1314459
LewisWallisParticipantBrilliant thanks, that worked a treat!
January 3, 2017 at 12:06 pm #1314468
Prasant RaiModeratorYou are most welcome. 🙂
-
AuthorPosts
- <script> jQuery(function($){ $("#no-reply-1301295 .bbp-template-notice, .bbp-no-topic .bbp-template-notice").removeClass('bbp-template-notice'); }); </script>
