Aslına bakarsanız benim aklıma gelmiş birşey değil bu. Bunu bana bir arkadaş söyledi. “Şöyle bir buton yapabilirmiyiz” diye. Onun da aklına nereden geldi bilemem ama sanırım güzel birşey oldu. Hatta bunu bitirmeye yakın benden daha düzgün halde yapılmış olanını gördüm. tabii potansiyel arkadaşım da bunu okuyacağından yazmıyorum kaynağı. İkisini birbirine karıştırarak da aşağıda size vereceğim kodu oluşturdum. Aslına bakarsanız tek bir kod parçası. Sadece neden ve nasıl soruları askıda kalmasın diye yazacağım herşeyi.
Öncelikle bu rastgele yazı butonu için sql sorgusu oluşturmak gerekiyor. Biliyorsunuz ki MySQL altyapısında bulunan WordPress veritabanından birşey çağıracağız. Aşağıdaki SQL sorgusunu bir inceleyelim.
SELECT guid FROM wp_posts WHERE post_type = 'post' AND post_status = 'publish' ORDER BY RAND() LIMIT 1
Burada olup biteni aşağıda listeliyorum.
guid: Guid adlı alanda yazılarımızın linkleri bulunmakta. Bu alandan link seçimini yapmak için SELECT komutunu kullanıyoruz.
wp_posts: Bu yanda yazan şey yazılarımızın bulunduğu tablonun adı. Zaten guid’i buradan çekiyoruz.
post_type: Post_type karşılığı post olacak doğal olarak. Çünkü çağırdığımız şeyi tanımlamalıyız.
post_status: Burada tabiiki yayınladığımız yazıları gösterebileceğimizden published seçeneğini ekliyoruz.
order by rand: Burada da rastgele yazı gelmesini sağlıyoruz.
limit: Gelecek olan yazıyı 1 ile tek gelmesi için limitliyoruz.
Uzun uzadıya açıkladığımı sanıyorum. Neyse koda geçelim.
İşte Kod;
<?php $randomPost = $wpdb->get_var("SELECT guid FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'publish' ORDER BY rand() LIMIT 1"); echo '<a href="'.$randomPost.'">Rastgele!</a>'; ?>
İşte bu kodu istediğiniz yere ekleyebilirsiniz. Hadi size iyi günler… Selametle