query_posts WordPress‘de kullanılan bir element. query_posts’u kullanarak sitenizde dilerseniz son 10 yazıyı gösterebilir, ana sayfanızda istediğiniz bir kategoriye ait olan yazıları gösterebilir, istemediğiniz kategorilerin gösterilmesini engelleyebilirsiniz ya da yazılarınızı eskiden yeniye veya yeniden eskiye doğru gösterilmesini de sağlayabilirsiniz. Peki nasıl mı oluyor?
Basit olarak WordPress’de yazılar şu şekilde listelenir.
<?php while (have_posts()) : the_post(); ?>
<?php the_content(); ?>
<?php endwhile; ?>
<?php endif; ?>
Bu durumda yazılar alt alta tarihine göre listelenecektir. Diyelim ki biz ana sayfamızda son 10 yazımızı listelemek istiyoruz. Bu durumda imdadımıza query_posts yetişiyor
<?php if( have_posts() ) : ?>
<?php while( have_posts() ) : the_post(); ?>
<ul>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
</ul>
<?php endwhile; ?>
<?php endif; ?>
Burada normal listelemenin dışında başka bir listeleme başlatmış oluyoruz ve query_posts elementini kullanarak 10 adet yazının başlıklarını gösteriyoruz. Bunun bir örneğini canlı olarak bu sitede en alt kısımda görebilirsiniz. query_posts elementinin pek çok kullanım şekli vardır. Onları da gösterelim
İstediğiniz bir kategoriye ait yazıları ana sayfada göstermek için:
if (is_home()) {
query_posts("category_name=haberler");
}
?>
Eğer bu kodu bir önceki örnekteki gibi listelemenin başladığı satırın hemen üstüne yerleştirirseniz; ana sayfada sadece haberler kategorisine ait yazıları göstermiş olursunuz. is_home() elementi de yazıları sadece ana sayfada göstermemizi sağlıyor.
Aslında kategorinin ismini kullanmak yerine id’sini de kullanabiliriz. Bunun için haberler kategorisinin id’sinin 3 olduğunu varsayarsak category_name=haber yerine cat=3 yazmamız yeterli olacaktır.
Birden fazla kategoriyi de bu şekilde gösterebiliriz. Örnek olarak:
if (is_home()) {
query_posts('cat=2,3,7,19');
}
?>
Böylece ana sayfada 2, 3, 7, ve 19. kategorilere ait yazıları listelemiş olduk.
Diyelim anasayfa da göstermek istemediğimiz bir kategorimiz var bunun için de şunu kullanabiliriz:
if (is_home()) {
query_posts('cat=-5');
}
?>
Böylelikle ana sayfamızda 5. kategoriye ait yazılar görünmemiş olacak.
Dilersek yine ana sayfada
istediğimiz bir yazının sabit bir biçimde görünmesini sağlayabiliriz.
if (is_home()) {
query_posts('p=7');
}
?>
İstersek tarihe göre listeleme de yapabiliriz. Örneğin:
3. kategoriye ait 2004 yılında yazılmış yazılardan 5 tanesini göster demiş oluyoruz böylece.
Parametreler
- cat=3 - id’si 3 olan kategorideki yazılar
- category_name=kategori adı - Adını girdiğiniz kategoriye ait yazılar
- author_name=yazar adı - Adını girdiğiniz yazara ait yazılar
- author=3 - id’sini girdiğiniz bir yazarın yazıları
- p=1 - idsini girdiğiniz bir yazıyı göstermek
- name=yazı adı - İstediğiniz bir yazıyı göstermek
- page_id=7 - id’si 7 olan sayfayı gösterir
- pagename=sayfa adı - Herhangi bir sayfayı göstermek için
- showposts=10 - Girdiğiniz değer kadar yazı gösterilir
- hour= - İstediğiniz bir saate ait yazılar
- minute= - İstediğiniz dakikaya ait yazılar
- second= - İstediğiniz saniyeye ait yazılar
- day= - İstediğiniz bir güne ait yazılar
- monthnum= - İstediğiniz aya ait yazılar
- year= - İstediğiniz yıla ait yazılar
- paged=2 - İkinci sayfaya ait yazılar
- posts_per_page=10 - Sayfa başına kaç tane yazı gösterileceğini belirler. -1 değer tüm yazıları gösterir.
- order=ASC - Yazıları eskiden yeniye doğru sıralar. DESC değeri yeniden eskiye doğru sıralar.
Bu parametreler ile değişik kombinasyonlar oluşturarak istediğiniz biçimi elde edebilirsiniz. Yalnız parametreler arasına & işaretini koymayı unutmayın ve bu kodları listelemenin başladığı
satırının üstüne yerleştirmeyi de ihmal etmeyin.
Evet sevgili okuyucular gördük ki WordPress ile yapılabilecekler hayal gücümüz ile sınırlı. Bir başka National Geographic Çılgın CMS ler programında daha görüşmek üzere ![]()
Kaynaklar:
http://ifelse.co.uk/archives/2005/04/08/query_posts-redux/
http://codex.wordpress.org/Template_Tags/query_posts
http://codex.wordpress.org/The_Loop

5 Yorum var » Yorum ekle
çok güzel bir yazı olmuş ama o kadar denememe rahmen
bunu yerleştirdiğimde sadece baştaki rakamdaki kategoriyi görüyor 3.7.19 hiç bir şekilde görmüyor
acaba nerde yanlış yapıyorum yardımcı olurmusunuz ?
merhaba yazı çok güzel olmuş. bir şey sormak istiyorum. Yazılarımın bazıları iki kategoriye ait bu iki kategoriye ait olanları nasıl çekebiliriz. Ana stil bu sitedeki gibi olacak. http://www.fresheezy.com/gallery
1-2 Hafta kadar önce bu yazıyı okumuştum tekrar şnceleyip kullanmayı düşündüm
2 Gündür yer imlerimi alt üst ettim bugün buldum
Çok güzel bi çalışma 
Teşekkür ederim
Çok işime yaradı. Özellikle category_name yerine cat kullanabilmem.
Ancak şöyle bir sorunum var; Sitemde toplam 30 içerik var. Ana sayfada ise sadece 5 tanesi gözüküyor. Geriye kalıyor 25 tane. Kullandığım tüm temalarda durum şöyle; Toplam ilk üç sayfa boyunca site.com/page/3′e kadar sorun yok. Bu 3 sayfada toplam 15 tane konu gözüküyor benimse 15 konum daha var. Yani 3 sayfa daha olması gerekiyor. Ancak diğer sayfalarına girince 404 Bulunamadı hatası veriyor. Yaklaşık bir haftadır bu sorunla uğraşıp duruyorum. Acaba nasıl çözerim ?
Yorum Yaz