
Wordpress içerikleri görüntülerken Loop adı verilen kendine has meşhur döngüyü oluşturur ve bu döngü sayfada işlenen kriterlere göre veritabanındaki içeriklerin girildiği tabloda bazı seçim (select) işlevini gerçekleştirir. Böylece o anki kriterlere göre veritabanından seçilen satırlar (post verileri) döngüde işlem görürler.
Bu kirterlerin en önemlileri GET metodu ile tanımlanan aşağıdaki verilerdir:
p=[post_id_verisi]
görüntülenecek post verisinin id bilgisini verir. Böylece WP görüntülenecek sayfanın bir post içeriği olduğunu anlar ve ilgili verileri veritabanından alır ve yazdırır.
page_id=[sayfa_id_bilgisi]
görüntülenecek sabit sayfa verisinin id bilgisini verir. WP bu veri sayesinde görüntülenecek içeriğin bir sayfa olduğunu anlar ve veritabanındaki ilgili tablodan işlem yaparak verileri yazdırır.
cat=[kategori_id_bilgisi]
WP bu değişken sayesinde id bilgisi verilen kategoriye ait içeriklerin listelenmesi gerektiğini anlar ve ilgili tablodan verilen id bilgisine ait içerikleri listeler.
tag=[etiket_id_bilgisi]
WP bu değişken sayesinde id bilgisi verilen etikete ait içeriklerin listeleneceğini anlar ve ilgili veritabanı tablosundan verileri listeler.
Wordpress’in sayfaları, içerikleri, kategori içeriklerini, etiket içeriklerini listeleme işleminde yukarıda belirtmiş olduğumuz veriler referans olarak kullanılırlar.
Bütün işlemlerde verilen referans id bilgilerine bağlı olarak veritabanının ilgili tablolarından seçim (select) işlemi gerçekleştirilir. Herhangi bir WP temasının single.php, index.php, page.php vebenzeri betiklerini incelediğinizde aşağıdaki satırları görebilirsiniz:
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
WP’ye özel bu satırlar yukarıda bahsettiğimiz kriterlere bağlı olarak seçim işlemi sonucunda veritabanından seçilen satırların işleme gireceği döngünün başlangıç satırlarıdır. Bu döngüler,
<?php endwhile; ?>
<?php endif; ?>
satırları ile sona ererler.
WP’nin temel işleyişi hakkında bu kadar önbilgi girdikten sonra asıl konumuza adım adım giriş yapalım.
Peki ya Loop döngüsünün dışına çıkarsam?
Özellikle Ajax uygulamalarında sunucuya sayfadan bağımsız yeni bir istek gönderdiğimiz zaman tek içeriğe (tek select satırı sonucuna sahip. örn: ‘p=15′ gibi) sahip kriterlerde çeşitli WP fonksiyonlarını kullanarak içeriği Loop döngüsünden bağımsız oluşturmamız mümkün olmakla birlikte bu işlemin zahmetli bir süreç gerektirdiğini kabul etmeliyiz. Aynı zamanda birden fazla içeriğe sahip olabilecek kriterler (örn: cat=3) söz konusu ise bir şekilde kendi döngümüzü oluşturmamız gerekecektir.
WP geliştiricileride bu durumu düşünerek bizlerin kendi döngülerinden istediğimiz anda yararlanabilmemizi sağlayan bir WP fonksiyonu geliştirmişler: query_posts().
query_posts() fonksiyonu işlevi
Bu kullanışlı fonksiyon bizlere istediğimiz kriteri belirleyerek yeni bir Loop döngüsü oluşturma imkanı sağlamaktadır. Böylece yukarıda belirttiğimiz döngü başlangıcı satırlar belirttiğimiz kritere göre işlem yapabilmektedirler.
Örneğin bir betiğe id bilgisi 12 olan etiket bilgisine sahip içerikleri listeletmek istediğimizde:
<?php query_posts(tag=12);?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
[WP fonksiyonlarını içeren tasarıma ait HTML kodları]
<?php endwhile; ?>
<?php endif; ?>
betiğe id bilgisi 9 olan kategori bilgisine sahip içerikleri listeletmek istediğimizde:
<?php query_posts(cat=9);?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
[WP fonksiyonlarını içeren tasarıma ait HTML kodları]
<?php endwhile; ?>
<?php endif; ?>
betiğe id bilgisi 3 olan post içeriğini görüntületmek istediğimizde istediğimizde:
<?php query_posts(p=3);?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
[WP fonksiyonlarını içeren tasarıma ait HTML kodları]
<?php endwhile; ?>
<?php endif; ?>
yöntemlerini kullanabilmekteyiz. Wp‘in işleyişini daha iyi kavramak için çeşitli Wp temalarının betiklerini incelemenizi ve aynı dizinde bunlardan bağımsız benzer bir betik oluştururarak bu yöntemleri betiğinize uygulamanızı ve tarayıcınızdan ilgili betiğinizi çağırarak betiğinizi test etmenizi tavsiye ederim. Ancak bunun için ilk işlem olarak betiğinizin en üstünde wp-config.php betiğini çağırmanız gerektiğini unutmayın.
Anlaşılmayan noktalar üzerine sorulan sorular beni sevindirecektir. :)
17 Nisan 2009 saat: 17:25
Alıntı: sebvan.com
25 Şubat 2010 saat: 23:37
Yukarda ki yazıda etiket bilgi sorgusu olarak
query_post(tag=12)hatalı bilgi verilmiş.Doğrusu:
query_post(tag_id=12)Codex sayfasından diğer sorgu değerlerine bakıla bilir.
Yazın için teşekkürler. Kolay gelsin.