aşağıdaki gibi düzeltin
function rastgele_resim($limit="") {
if(empty($limit)){
$limit =1
}
global $wpdb;
$sorgu = mysql_query("SELECT resim FROM $wpdb->rastgeleresim ORDER BY rand() LIMIT 0,$limit");
while($y=mysql_fetch_object($sorgu)) {
echo $y->resim;
}
}fonksiyonu çağırırken şöyle çağırın
rastgele_resim(10); // burada 10 adet resim döndürür
ancak siz resimleri mysql e gömmüşseniz hata yapmışsınız demektir o tablo şişecektir. resimleri bir klasöre uplıad edip adlarını veritabanına kaydetmeniz daha sağlıklı ve performanslı olacaktı
diğer taraftan veri motonun MyISAM olarak ayarlamanız performans acısından ciddi bir zaman kazandıracaktır eger veri moturu InoDB ise MyISAM olarak değiştirmenizi öneririm
hayır, akıllı rand işlemi yapacak bir fonksiyon veya sql yazılmazsa rand() yine kasacaktır. rand() için LIMIT 0, 30 gibi bir kullanımla performans artırılamaz, rand bütün kayıtları baz alır, sistemi yine yorar, limit ile sadece dönecek kayıt sayısını belirlersiniz.
WHERE ile koşullandırılmış bir sql oluştup o koşul ile rand() kullanan bir php betiği yazılabilir.