Yeni Üretilenler
Sende Tıkla
Etiketler

Wordpess query_posts () kullanımı

Cuma, Mart 6th, 2009 | eklentiler, wordpress | ercani

Merhaba arkadaşlar. Yazılarıma ara verdim bayadır özür dilerim. Bundan sonra devamlı yazacam umarım.

Temamı düzenlemeye devam ediyorum. Bu gün wp tema cümbüşü yazan yeri tamamlayayım dedim ve şöyle bir araştırma yaptım.

İstediğim herhangibir kategorinin yazılarını nasıl yayınlarım yada yayınlanan yazılardan istediğim kategoriye ait yazıları nasıl çıkartabilirim diye bir düşündüm. Biraz araştırınca  query_posts () fonksiyonunu kullanmak mantıklı geldi.

Bu fonsiyonu açıklamadan önce bir ipucu vereyim. Eğer wordpress te bir fonksiyonun ne işe yaradığını yada içinde ne tür parametreler aldığını öğrenmek istiyorsanız,  codex.wordpress.org adresini ziyaret edip ordaki arama kutucuğundan istediğiniz fonksiyonu aratabilirsiniz.

Nedir  query_posts () ?

query_posts bir wordpress fonksiyonudur.  Bu fonksiyonumuzu yazıların yayınlandığı döngülerden önce kullanarak döngüdeki yazılara kısıtlama getirebiliriz.

Biraz daha açalım;
Anasayfada çıkan yazılardan ;

  • Sadece istediğimiz kategoriyi çağırma
  • İstediğimiz kategorinin yazılarını çıkarma
  • İstediğimiz yazıyı yayınlama
  • İstediğimiz yazarın yazılarını yayınlama …………

Şimdi benim karşılaştığım sorunu nasıl çözdüğümü anlatıp kodları verelim.

Anasayfam  içerisinde iki tane yazı döngüsü olsun istedim. O yüzden  index.php i açıp içindeki döngüyü yani aşağıdaki kod parçasını (Bilmeyenler için söyleyeyim, döngü verilen koşullara uyarak devamlı tekrar eden kod parçasıdır. Yazılarımızda verilen css özelliklerine göre anasayfada tekrar ederek karşımıza çıkar) kopyalayıp aşağıda istediğim yere yapıştırdım.

<?php while (have_posts()) : the_post(); ?>  //  Burası döngü başlangıcıdır.
<div class=”entry”>
<?php the_title(); ?>
<?php the_content(); ?>
<?php endwhile; ?>
//Burası döngünün sonudur.

Şimdi sorun şu ki, bu döngü kopyalandığı yerde  son yazıları gösterecektir. Oysaki ben istiyorum ki sadece benim belirlediğim kategorinin yazılarını göstersin. Bunu yapmak için döngünün en başına aşağıdaki query_posts() fonksiyonunu şu şekilde kullandım.

<?php
query_posts(“cat=1339″);
?>

<?php while (have_posts()) : the_post(); ?>  //  Burası döngü başlangıcıdır.
<div class=”entry”>
<?php the_title(); ?>
<?php the_content(); ?>
<?php endwhile; ?>
//Burası döngünün sonudur.

Bu şekilde sadece 1339 kategori id si olan kategorinin yazıları görüntülendi. Ama şimdi diğer bir sorun ortaya çıktı. Bu kategorinin yazılarının üstteki diğer yazı döngüsünde çıkmasını istemiyorum. Bunun içinde üstteki döngünün başına geldim ve aşağıdaki gibi query_posts() fonksiyonunu kullandım.

<?php
query_posts(“cat=-1339″);
?>

<?php while (have_posts()) : the_post(); ?>  //  Burası döngü başlangıcıdır. index.php deki 1. döngü
<div class=”entry”>
<?php the_title(); ?>
<?php the_content(); ?>
<?php endwhile; ?>
//Burası döngünün sonudur.

Dikkat ederseniz bu sefer -1339 oldu. Böylece 1339 numaralı kategori artık o döngüde yayınlanmayacaktır. Tabi istediğiniz kadar kategori çıkarabilirsiniz. Bunun için aşağıdaki gibi düzenleyebilirsiniz.

<?php
query_posts(“cat=-1339,-23,-45″);
?>

Yada o döngüde sadece belirli bir sayfayı yada yazıyı yayınlayabilirsiniz.

<?php
query_posts(“p=133″); // Bu şekilde sadece 133 numaralı yazı görüntülenecektir.
?>

Genel olarak kullanımı bu şekilde. Daha fazla bilgi ve kullanımı ile ilgili örnel için buraya bakabilirsiniz.

Şimdi diğer bir sorunu daha çözelim. Dedim ki bu yayınlayacağım wp cümbüşü kategorisi sağdaki kategori menüsünde çıkmasın. Yani kimse üstüne tıklayıp ayrı sayfaya gitmesin. Bunun için hemen kategorileri listeleyen aşağıdaki kodu sidebar.php içerisinde buldum.

<?php wp_list_cats(‘sort_column=name&optioncount=0′); ?>

Bu kod içerisine nasıl bir parametre ekleyerek ilgili kategoriyi çıkarırım diye hemen codex.wordpress.org sitesine baktım. Ve bana exclude kodunu verdi. Daha sonra kod içerisine şöyle yerleştirerek o sorunuda gidermiş oldum.

<?php wp_list_cats(‘sort_column=name&optioncount=0&exclude=1339′); ?>

Evet söyleyeceklerim bukadar umarım yararınıza bir yazı olmuştur.

7 KonuşmaBakalım Kim Ne Demiş?


1
Mehmet
07 Mart 2009

Faydalı bir döküman, teşekkürler Ercan..


2
Eray USTA
13 Mart 2009

Yararlı bir yazı olmuş teşekkürler


3
neyazsak
05 Nisan 2009

“İstediğimiz yazarın yazılarını yayınlama” bunu nasıl yapabilirz bunu açıklayabilir misiniz acaba


4
serkan
02 Temmuz 2009

Güzel bi çalışma php kodlarını bilmeyenler ve anlamak isteyenler için anlaşılır ve açıklayıcı


5
ercani
13 Temmuz 2009

neyazsak, yazar için fonksiyon iki parametre veriyor, bunlar;
author_name=Harriet
author=3
şeklinde.
< ?php query_posts(”author_name=ali); ?> şeklinde kullanabilirsin. bir ipucu vereyim. query_posts(”cat=-1339&author=3″); şeklindede kullanabilirsin. yani parametreler arasına & koyarak istediğin özellikleri aynı anda kullanabilirsin.


6
ercani » query_posts sayfalama hatası
13 Temmuz 2009

[...] hatası Pazartesi, Temmuz 13th, 2009 | wordpress | ercani Daha önce buradaki yazımda query_posts kullanımını anlatmıştım. Bu fonksiyon anasayfada gösterdiğimiz yazılarda, istediğimiz [...]


7
Kadir
21 Ağustos 2009

Peki birden fasla yazı görüntülemek istersem ama benim belirlediğim yazılar ozaman napacaz???

~Sadece Düşünme Sende Konuş~

Markup Controls
Emoticons Smile Grin Sad Surprised Shocked Confused Cool Mad Razz Neutral Wink Lol Red Face Cry Evil Twisted Roll Exclaim Question Idea Arrow Mr Green

NOT:Kod Eklerken, kodu yazdıktan sonra kodları işaretleyip "Kod Ekle" butonuna basalım.

Yazılar Emailine Gelsin

Email Adresinizi Yazın:

Delivered by FeedBurner

Site İstatistik

  • 204 adet yazı var.
  • 2,045 adet yorum var.
  • 10 Kişi şu anda çevrimiçi
  • 127 aynı anda maksimum çevrimiçi kişi
  • 190966 Toplam ziyaretçi