Navigation
This is archived content. Visit our new forum.

Tagged: 

  • Author
    Posts
  • #1138794
    Matt Mintun
    Participant

    Hey! I am having an issue with how Recent Posts shortcode pulls images from our blog. Our featured images have the title of the blog post in them for social sharing purposes. When Recent Posts show up in the side bar (for example) it cuts off the bottom of the image. When I look at the inspector in Chrome, I notice that the image that WordPress is using for the background-image is cut off no matter what. Like when I upload, it crops it.

    Do you guys know how to fix that?

    I attached two images that show the recent posts widget in the sidebar with arrows to what I’m referring to and also included an image of one of our featured images so you can see what the original image looks like.

    Site Address:
    https://www.uproargroup.com/content-marketing/5-free-content-marketing-tips-small-businesses/

    Thanks!
    Matt

    #1139127
    Rue Nel
    Moderator

    Hello There,

    Thanks for writing in! This issue happen because the featured image were being cropped and since the text is embedded in the image, it ended up being cropped. To change the cropped image to full width, please insert this following code in your child themeโ€™s functions.php file.

    // =============================================================================
    // Customized Recent Post image and change it to full image size
    // =============================================================================
    
    function custom_recent_posts_images( $atts ) {
      extract( shortcode_atts( array(
        'id'          => '',
        'class'       => '',
        'style'       => '',
        'type'        => 'post',
        'count'       => '',
        'category'    => '',
        'offset'      => '',
        'orientation' => '',
        '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';
      $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(), 'full' );
            $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"', csl18n() ), 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>'
                         . '</div>'
                       . '</div>'
                     . '</article>'
                   . '</a>';
    
        endwhile; endif; wp_reset_postdata();
    
      $output .= '</div>';
    
      return $output;
    }
    
    add_action('wp_head', 'update_recent_posts_images');
    function update_recent_posts_images() {
      remove_shortcode( 'x_recent_posts' );
      remove_shortcode( 'cs_recent_posts' );
      add_shortcode( 'x_recent_posts', 'custom_recent_posts_images' );
      add_shortcode( 'cs_recent_posts', 'custom_recent_posts_images' );
    }

    We would loved to know if this has work for you. Thank you.

    #1142229
    Matt Mintun
    Participant

    AWESOME!!! That did it. Thanks so much for that ๐Ÿ™‚

    #1142543
    Prasant Rai
    Moderator

    You are most welcome. ๐Ÿ™‚

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