Faydalı WordPress fonksiyonlarıyla yazılarımıza devam edelim. Hatırlatmak gerekirse bundan önce bahsettiğim fonksiyon bloginfo fonksiyonuydu. Bu yazımda ise günlüğümüzde görütülenecek yazıları kontrol etmemize yarayan query_posts fonksiyonunu anlatacağım.
Bu fonksiyon sayesinde günlüğümüzde görüntülenecek yazıları kontrol edebiliriz. Genel olarak şu amaçlarla kullanılabilir;
- Anasayfada istediğiniz tek bir yazıyı,
- Belirli bir zaman aralığındaki yazıları,
- Anasayfada sadece son yazıyı gösterebilir,
- Yazıların görüntülenme sırasını ve kriterini değiştirebilir,
- Sadece belirli kategorilerdeki yazıları gösterebilir,
- Dilediğiniz kategorideki yazıların görüntülenmesini engelleyebilirsiniz.
Not: Bu fonksiyonu anasayfada bir kez kullandığınız zaman yine anasayfada oluşturacağınız tüm döngüler bu fonksiyona uyacaktır. Bu nedenle bu fonksiyonu mümkünse sadece anasayfadaki ana döngü için kullanın. Diğer döngüler için WP_Query fonksiyonunu kullanabilirsiniz.
query_posts fonksiyonunu anasayfada (index.php veya home.php) ana döngümüzden önce kullanırız. Bu sayede döngüde görüntülenecek yazıları belirlemiş oluruz. Örnek kullanımlara bakarak nasıl kullanıldığını daha iyi anlayabilirsiniz.
Anasayfada bir kategorinin görünmesini engellemek
Aşağıdaki fonksiyonda 3 numaralı kategorideki hiçbir yazı görüntülenmez.
[php]<?php
if (is_home()) {
query_posts("cat=-3");
}
?>[/php]
Dilerseniz birden çok kategoriyi de gizleyebilirsiniz.
[php]<?php
if (is_home()) {
query_posts("cat=-1,-2,-3");
}
?>[/php]
Belirli bir yazıyı göstermek
Aşağıdaki şekilde kullanırsanız sadece 16 numaralı yazı görüntülenir.
[php]<?php
query_posts(‘p=16’);
?>[/php]
Tabiî tek bir yazıyı görüntülediğimizde devamını oku şeklinde bir yazı çıkmasını istiyorsak global $more değişkenine de 0 değeri vermeliyiz. Yani yukarıdaki kodu tamamlarsak;
[php]<?php
query_posts(‘p=16’);
global $more;
$more = 0;
?>[/php]
Belirli bir sayfayı görüntülemek
Eğer bir yazıyı değil de Hakkımda sayfası (numarası 7 olsun) gibi belirli bir sayfayı görüntülemek istersek şu kodu kullanabiliriz.
[php]<?php
query_posts(‘page_id=7’);
?>[/php]
Bu yazımda size böyle bir fonksiyon olduğunu göstermek ve bu fonksiyonun nasıl kullanıldığını kısaca anlatmak istedim. Fakat oldukça geniş bir fonksiyondan bahsediyoruz. Öyle ki fonksiyonun birçok kategori, yazar, etiket, sayfa ve yazı parametreleri bulunuyor. Tüm bu parametrelere ve kullanımına buradan bakabilirsiniz.
Umarım aklınızdaki bazı sorulara cevap bulmuşsunuzdur. Kolay gelsin…
güzel özelliklerden birtanesi. özellikle magazine tipi bloglar için ideal.
dönüşün harika oldu
Ben şu kodu
sitemde kullandım. Evet dilediğimiz kategorideki yazıları gizleyebiliyoruz. Çok da işime yaradı; lakin bu seferde “pagenavi” bozuldu, yani sayfalama yapmadı. Bir çözüm yolu var mı acep?
Esenlile…
Selamlar.
Bir sorum var sanırım tek siz çözebilirsiniz.
ile postları çekiyorum ama ben en son yazılan çıksın istemiyorum mesela en son yazdığım a,b,c,d diye 4 postum var. Sırladığımda baştaki a yerine b,c,d gözüksün istiyorum. Yani en son yazılan yazıyı göstermek istemiyorum. Bunu yapabilir miyiz?
arkadaşlar benimde bir sorum var mesela bir kategori altında 5 yazı var a b c d e bunlardan ilk ikisini bir yerde (a b) kalanları başka bir yerde listeletmek istiyorum ne yapmalıyım?
Selam.
Sitede deneme amaçlı olarak
olarak kullandım, 1 nolu kategoriyi göstermiyordu, fakat Pagenavi hatası verdi, sayfa 2 ye tıkladığımda da anasayfayı açıyordu. Hosting windows sanırım bundan kaynaklanıyor. Bilginize
Ana sayfada her katagoriden 5 er konuyu listelemek istiyordum bu kodla deneme yapıcam umarım işime yarar. teşekkürü borç bildim teşekkür ederim :)
http://www.entelektuel.com/index.txt adresine index.php yi yükledim. acaba ben 11 numarale kategorimi nasıl ana sayfada göstermem.pagenavi kullanıyorum.
Aşağıdaki güncellemeyi yapın
$my_query = new WP_Query(‘showposts=1&cat=-11’);
Tabi bu örnekteki kodlarınızla sayfalama eklentiniz çalışmaz. Çalışması için WP_Query’yi şurada Using Pagination başlığında gösterildiği şekilde kullanmanız gerekir.
Son olarak kişisel yardımda bulunmadığım için sorunlarınız için WordPress-tr.com forumlarında sormanızı rica ediyorum.
İyi günler
güzel paylaşım teşekkürler
BU fonksiyonu kullanmak istiyorum fakat sadece 4 yazının seçilmesini istiyorum. yani kodun okunduğu yerde 4tane yazı gosterilecek. Böyle olmayıncca bütün postlaroı gösteriyor :
@Nego, bu fonksiyonun tam kullanımı ve tüm parametreleri için bağlantı adresini verdiğim WordPress.org’daki makalei okuyabilirsin. Kolay gelsin.
çok işime yaradı teşekkürler
iyi günler. ben sitemde 2-3 tane kategorinin yazılarını ana sayfamda x kategorisinin yazıları, y kategorisinin yazıları şeklinde bir kaç tane koyacağım. Gerekli kod nedir öğrenebilirmiyim.
yakuter hocam çok teşekkürler. eline sağlık
merhaba
sayfada sabit katagoriler ve içindeki 10 haber başlığı
Bir sorum olacak
wp da ana sayfamda diyelim ki 10 katagorim var. şimdi bu katagorileri sabitlemek yani surekli ayarladığımız sirada kalmasıni ve kat içerisinden 10 haber başlığını göstermek istiyorum. bunu nasil yapa bilirim ?
Selamun Aleyküm uzun bir zaman olmuş ama bir sorum olacaktı.
Ben şöyle birşey yapmak istiyorum.Veritabanında " goster " adında bir alan oluşturup bu alana i 1 yada 0 değerleri girilecek..
Anasayfada ise goster = 1 olanı göstermek istiyorum. 0 ise göstermeyecek. Bunu yapmamın bir yolu var mı acaba ?
Şimdiden Teşekkürler …