DPS Default Image

When using Display Posts Shortcode, this code snippet will let you specify a default image to use like this:

[display-posts image_size="thumbnail" default_image="123"]

Where “123” is the ID of the image you’d like to use as your default.

/**
 * DPS default image
 * @link https://www.billerickson.net/code/dps-default-image/
 */
function be_dps_default_image( $output, $original_atts, $image, $title, $date, $excerpt, $inner_wrapper, $content, $class, $author, $category_display_text ) {
  if( !empty( $original_atts['image_size'] ) && !empty( $original_atts['default_image'] ) && empty( $image ) ) {
    $default_image_id = intval( $original_atts['default_image'] );
		if ( $original_atts['include_link'] ) {
			$image = '<a class="image" href="' . get_permalink() . '">' . wp_get_attachment_image( $default_image_id, $original_atts['image_size'] ) . '</a> ';
		} else {
			$image = '<span class="image">' . wp_get_attachment_image( $default_image_id, $original_atts['image_size'] ) . '</span> ';
		}
    
    if( !empty( $image ) )
      $output = '<' . $inner_wrapper . ' class="' . implode( ' ', $class ) . '">' . $image . $title . $date . $author . $category_display_text . $excerpt . $content . '</' . $inner_wrapper . '>';
  }
  return $output;
}
add_filter( 'display_posts_shortcode_output', 'be_dps_default_image', 10, 11 );

Bill Erickson

Bill Erickson is the co-founder and lead developer at CultivateWP, a WordPress agency focusing on high performance sites for web publishers.

About Me
Ready to upgrade your website?

I build custom WordPress websites that look great and are easy to manage.

Let's Talk