WordPress’te Eklentisiz Rastgele Yazı Gösterme
Daha önce burada eklenti kullanmadan nasıl rastgele yazı gösterebileceğimi anlatmıştım. Fakat Mehmet‘in sorusundan sonra biraz daha farklı bir kod paylaşmak istedim. Bunun sebebi ise paylaşacağım kodlar sayesinde seçtiğimiz kategorilerden rastgele yazı çıkmasını engellemek. Yani ben blogumda tanıtım yazılarını yayınladığım sponsorlar kategorisinden rastgele yazı çıkmasını istemiyorsam bu kodlar sayesinde bunu yapabilirim.
Yapımı çok basit. functions.php dosyamızı açıp içerisine aşağıdaki kodları ekleyelim.
add_action('init', 'rastgele_yazi');
function rastgele_yazi(){
if ( isset($_GET['rastgele']) ){
$random = new WP_Query('orderby=rand&showposts=1&cat=-314, -512');
if ($random->have_posts()) {
while ($random->have_posts()) : $random->the_post();
$URL = get_permalink();
endwhile; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Refresh" content="0; url=<?php echo $URL; ?>">
</head>
<body>
</body>
</html>
<?php }
die;
}
}
Yukarıda -314, -512 yazan kısım bizim rastgele yazı çıkmasını istemediğimiz kategorilerden. Başıa eksi ve aralarına virgül koyarak ekleme yapabilirsiniz. Ama yok ben bütün kategorilerden rastgele yazı çıksın istiyorum derseniz &cat=-314, -512 yazan kısmını silmeniz gerekecektir.
Aşağıdaki kodu ise rastgele yazı bağlantısının nerede gözükmesini istiyorsak oraya ekleyelim.
<a href="<?php echo home_url(); ?>/?rastgele" title="Rastgele Yazı">Rastgele Yazı</a>
Hepsi bu kadar.
functions içine otomatik categoriyi nası seçebiliriz? yani ben kategori şablonuna koyacam misal, teknoloji haberleri araısndan random getir dicem. bunu her kategoride de otomatik yapacam.
nası olacak?
Dediğiniz olayın nasıl yapıldığını en kısa sürede paylaşacağım.
Bu kod gerçekten çok işime yarayacak. Anlatımın için çok teşekkür ederim İsmail. Sağolasın :)
Hocam peki belirli bir kategorideki yazıyı rastgele nasıl koyabilirim ?
Ben bunu sidebarda veya temamın herhangi bir yerinde rastgele belirli bir karakter sınırlaması koyarak, devamını oku şeklinde nasıl yapabilirim ?
Örneğin bir kategoride 100 tane konum var. temamda bunları ufak yazılar halinde rastgele veya sırasıyla slide şeklinde nasıl gösterebilirim
WP_Query ile yapabilirsiniz. Döngüye orderby=rand yazarsanız istediğiniz şekilde olur.
teşekkür ederim hocam. Size zahmet bir örnek vermeniz mümkün mü ? Yapmak istediğim hani sizin şu yanda örneğin sun oyun bölümü var ya, orada yaşam bölümünden yazdığınız yazıların slide şekilde kendi kendine değiştiğini düşünün. Slide olmasada sayfayı her yenilediğimde değiştiğini düşünün.
http://snipt.org/ALfh5
Yukarıda örnek bir döngü gösterdim.
teşekkür ederim hocam. Bunu slide şekilde yapmamız mümkün mü peki ? Konu başlığı ve kısa bir yazı ile kendi kendine değişse ?
Onun için şuan vaktin yok. Boş bir zamanımda anlatabilirim.
teşekkür ederim çok faydalı bir yazı olmuş , kod genel olarak çalışıyor ama bende kategorileri hariç tutma çalışmadı yani bazı kategorileri sizin belirttiğiniz şekilde functions.phpye eklediğim halde rastgele getire tıkladığımda yine o istemediğim kategorilerden gelebiliyor , o kısmı şu şekilde yazdım
$random = new WP_Query(‘orderby=rand&showposts=1&cat=-942,-596,-1076,-3842,-1176,-5294’);
Konuyu yaklaşık 2 sene önce paylaştığım için kodların çalışıp çalışmadığı hakkında bir bilgim yok maalesef.
tam olarak aradığım kodlardı belirli bir kategoriden rastgele yazı çekmek ellerine sağlık kardeşim çok işime yaricak saygılarımla can Ünal
Test etmeden başka siteden alıp direk yazarsan milleti kandırmış olursun. önce bi test et çalışıyormu diye ondan sonra yaz.
Test etmediğimi nereden çıkardınız? Uzun süre, sorunsuz bir şekilde kullandım ben bunu.
Aradığım bir koddu. Teşekürler
Hocam dediğiniz şekilde yaptım fakat yazılar gelmiyor sadece yazı başlığı yani Rastgele Yazılar çıkıyor. Nerede hata yapıyor olabilirim acaba ?
Yazıda sizin bahsettiğinizi yazdım zaten. Blogdaki tüm yazılar arasından sadece 1 başlık rastgele olarak getirili.
Merhaba hocam;
Bu kod değişikliğini güncel versiyonlar ile uyumlu mu acaba? Kullanmalı mıyım.
Son zamanlarda kullanmadım fakat uyumlu olduğunu düşünüyorum. Deneyebilirsiniz, problem çıkarsa kaldırırsınız.
Denedim hocam, arkadaşlara referans olmak adına yazıyorum. Güncel versiyonla uyumlu bir şekilde çalışıyor.