Самый простой способ - иметь массив изображений со ссылками, а затем указывать $ single в качестве индекса массива. Есть два способа сделать это. Один из них должен иметь двухмерный массив, который содержит как ссылки, так и изображения, а другой - два параллельных массива. Здесь показаны оба варианта:
<?php
// one two dimensional array
$ads = array( array("1.png", "/page1"), array("2.png", "/page2"), array("3.png", "/page3"), array("4.png", "/page4"), array("super-special-buy-now.png", "/billy-mays-lives") );
// or two one dimensions arrays
$ads_images = array("1.png", "2.png", "3.png", "4.png", "super-special-buy-now.png");
$ads_links = array("/page1", "/page2", "/page3", "/page4", "/billy-mays-lives");
// now your code
$totalImages = 5;
$all = range(1,$totalImages);
shuffle($all);
$html = "";
foreach ($all as $single) {
// option 1, two dimensional array
$html += sprintf('<li><a href="%s"><img src="%s/images/ads/ad_0%s" alt="ad" /></li>',
$ads[$single][1], bloginfo('template_url'), $ads[$single][0]);
// option 2, two parallel arrays
$html += sprintf('<li><a href="%s"><img src="%s/images/ads/ad_0%s" alt="ad" /></li>',
$ads_links[$single], bloginfo('template_url'), $ads_images[$single]);
}
echo $html;
?>