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 );