Navigation
This is archived content. Visit our new forum.

Tagged: 

  • Author
    Posts
  • #1301295
    LewisWallis
    Participant

    Hi 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>’ : ”;

    $output .= ‘
    . ‘<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>’
    . ‘
    ‘;

    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’ );
    }
    // =============================================================================

    #1301297
    LewisWallis
    Participant
    This reply has been marked as private.
    #1301386
    Paul R
    Moderator

    Hi 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.

    #1314459
    LewisWallis
    Participant

    Brilliant thanks, that worked a treat!

    #1314468
    Prasant Rai
    Moderator

    You are most welcome. 🙂

  • <script> jQuery(function($){ $("#no-reply-1301295 .bbp-template-notice, .bbp-no-topic .bbp-template-notice").removeClass('bbp-template-notice'); }); </script>