Fixed it...
On line 527 where it handles cat IDs:
// Cat ID(s) passed?
if ( $r[ 'category_ids' ] !== false ) {
$cat_ids = explode( ',', $r['category_ids'] );
$CategoryImagesII->display_images( $cat_ids, $r[ 'link_images' ] );
return;
}
It stores the images in $CategoryImagesII but then returns nothing, nor does it echo because it never gets to the part where it decides to echo (depending on echo arg) on line 541 because its already returned.
The simplest fix is to return the result in that same line, e.g.
return $CategoryImagesII->display_images( $cat_ids, $r[ 'link_images' ] );
But I really needed it to work with the echo arg, so I altered that whole section, to either get the ids from the passed ids or the loop, then do the echo part as normal.
// Cat ID(s) passed?
if ( $r[ 'category_ids' ] !== false ) {
$cat_ids = explode( ',', $r['category_ids'] );
// In the loop?
} else {
$categories = get_the_category();
$cat_ids = array();
foreach ( $categories AS & $category ) {
$cat_ids[] = $category->cat_ID;
}
}
if ( ! $r[ 'echo' ] )
return $CategoryImagesII->display_images( $cat_ids, $r[ 'link_images' ] );
echo $CategoryImagesII->display_images( $cat_ids, $r[ 'link_images' ] );