Ich schreib eigentlich nicht gerne anderer Leute Plugins um, aber was soll's. Das folgende ist ungetestet, also vielleicht nicht gleich in einem Blog ausprobieren, das schon online ist. Bitte die vorhandene Funktion im Plugin einfach gegen das hier ersetzen und dann mal Bescheid sagen, ob es geklappt hat. Dann poste ich das bei dem Pluginautoren, vielleicht übernimmt er es ja. Den Bug hat er ja auch halbwegs flott behoben. 
function images($num = 1, $width = null, $height = null, $class = 'alignleft', $displayLink = true, $max = -1, $alt = '') {
global $more;
$more = 1;
if($width) { $size = ' width="'.$width.'px"'; }
if($height) { $size .= ' height="'.$height.'px"'; }
if($class) { $class = ' class="'.$class.'"'; }
if($displayLink != false) { $link = '<a href="'.get_permalink().'">'; $linkend = '</a>'; }
$content = get_the_content();
$count = substr_count($content, '<img');
$start = 0;
$max = ($max > 0) ? $max : $count;
for($i=1;$i<=$max;$i++) {
$imgBeg = strpos($content, '<img', $start);
$post = substr($content, $imgBeg);
$imgEnd = strpos($post, '>');
$postOutput = substr($post, 0, $imgEnd+1);
$replace = array('/width="[^"]*" /','/height="[^"]*" /','/class="[^"]*" /');
$postOutput = preg_replace($replace, '',$postOutput);
$image[$i] = $postOutput;
$start=$imgBeg+$imgEnd+1;
}
if($num == 'all') {
$x = count($image);
for($i = 1;$i<=$x; $i++) {
if(stristr($image[$i],'<img')) {
$theImage = str_replace('<img', '<img'.$size.$class, $image[$i]);
echo $link.$theImage.$linkend;
}
}
} else {
if(stristr($image[$num],'<img')) {
$theImage = str_replace('<img', '<img'.$size.$class, $image[$num]);
echo $link.$theImage.$linkend;
}
}
if (count($image) == 0) {
echo $alt;
}
$more = 0;
}
Alles anzeigen
Als neue Argumente an der Funktion bitte die Maximal-Anzahl reinreichen (also 4 in Deinem Fall, ansonsten -1 um das nicht einzuschränken) und den darzustellenden HTML-Code wenn kein Bild gefunden wurde (beispielsweise '<p>Keine Bilder.</p>').