BU DERSİN BAŞLIKLARI
WordPress döngüsü, yönetim panelinden eklediğiniz, sayfa ve yazıları, temanızın sayfalarında göstermenin yoludur. Bu yüzden, WordPress döngüsü, tema sayfalarınızı oluşturan, şablon dosyalarında kullanılır.
page.php
gibi, tipi sayfa olan içeriklerinize ait şablon dosyalarında da döngü kullanmalısınız, single.php
gibi, tipi yazı olan içeriklerinize ait şablon dosyalarında da.
WordPress döngüsü, şablon dosyası, hangi içeriğiniz ya da içerik arşiviniz için hazırlanmışsa o kadar içerik getirir. Mesela, single.php
veya page.php
şablonlarındaki döngü, sadece bir tane yazı veya sayfa getirirken, category.php
şablonundaki döngü, bir kategorideki, bütün yazı arşivini getirir. Çünkü, WordPress, single.php
veya page.php
şablonlarını bir defada bir içerik göstermek için kullanır, fakat category.php
şablonunu, bir kategoriye ait bütün yazıları içeren bir arşivi göstermek için kullanır.
Çok sayıda yazınız varsa, arşiv şablonlarınızda, sayfalama özelliği kullanabilirsiniz. WordPress döngüsünün, bir arşiv sayfasında kaç tane yazıyı getireceğini, yönetim panelindeki, Ayarlar -> Okuma menüsünden ayarlayabilirsiniz.
Döngü sayesinde, WordPress, içeriklerinizi veritabanınızda kaydedildikleri yerden getirir ve sitenizin sayfalarına, şablonunuzun stiline uygun olarak koyar.
Döngü, her bir içerik için, veritabanına kaydedilmiş dataları, şablon fonksiyonlarının çağırdığı yerlerde gösterir.
Döngü içinde kullandığınız, her bir HTML veya PHP kodu, her bir içeriğe, aynı şekilde uygulanacaktır. Bu yüzden, aynı döngünün ürettiği içeriklerin stili birbirinin tıpatıp aynısı olacaktır. WordPress, temamızda meydana gelecek, bu monotonluğu engellemek için, her bir içeriğe veya içerik arşivine ait, ayrı bir şablon hazırlamayı mümkün kılar.
WordPress döngüsünü farklı şekillerde kullanabilirsiniz. Mesela:
- Yazdığınız yazıların ya da sayfaların sadece başlıklarını listelemek için
- Tek bir yazıyı ya da bir sayfayı göstermek için, dilerseniz o içeriğe yapılan yorumları da birlikte göstermek için
- Koşullu ifadeleri kullanarak, bir içeriği, sadece belli sayfalarda göstermek için
- Özel yazı tiplerinizi ve özel alanlarınızdaki dataları göstermek için
Döngü içerisine yazacağınız HTML ve CSS kodları sayesinde, içeriklerinizin temanızda hangi biçimde gösterileceği tamamen sizin elinizdedir. Ayrıca, belli tipteki içeriklerinizi, diğerlerinden farklı biçimlerde göstermek için döngü içine, koşullu ifadeler de ekleyebilirsiniz.
WordPress Döngüsünü Kodlama
Aslında, bir WordPress döngüsünün temel öğeleri oldukça basittir ve şöyledir:
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<!-- ... Şablon fonksiyonları yardımı ile içerik buraya çağırılacak -->
<?php endwhile; ?>
<?php endif; ?>
Temel parçaları verilen WordPress döngüsü, bu haliyle ekrana hiç bir çıktı vermez, çünkü; döngü içerisinde bir şablon fonksiyonu kullanılmamıştır.
WordPress döngüsünün temel öğelerine, daha yakından bakalım:
have_posts()
fonksiyonu, veritabanında içerik var mı yok mu diye kontrol eder.- Eğer veritabınında kayıtlı içeriğiniz varsa,
while
ifadesinin parantezindekihave_posts()
koşulutrue
değerini alacaktır ve döngü dönmeye başlayacaktır. - İstenilen içeriklerin hepsi getirilene kadar, döngü dönmeye devam eder.
WordPress Döngüsünün Kullanımı
WordPress döngüsü, 404.php
dosyası haricindeki bütün şablon dosyalarında kullanılır ve her zaman, get_header()
fonksiyonunu çağırdıktan sonra başlar.
<?php get_header(); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<!-- ... Şablon fonksiyonları yardımı ile içerik buraya çağırılacak -->
<?php endwhile; endif; ?>
Yukarıdaki örnekte görüldüğü gibi, döngü her zaman if
ve while
ifadeleri ile başlar ve her zaman endwhile
ve endif
ifadeleri ile biter.
Şablon fonksiyonları, döngünün başlangıç ve bitiş ifadeleri arasında yer almalıdır.
Eğer, döngü, veritabanından getirecek bir içerik bulamazsa, yani döngünün if
kısmı false
değerini alırsa, döngüye, bir else
kısmı ekleyerek, kendinize özel bir 404 -sayfa bulunamadı- mesajı verebilirsiniz, hatta bu mesajı, buraya özel bir şablon parçası oluşturarak da –content-none.php
gibi- verebilirsiniz. Bu mesaj, aşağıda görüldüğü gibi, endwhile
ile endif
ifadeleri arasında olmalıdır.
Oldukça temel bir döngü ile hazırlanmış bir index.php
dosyası şu şekilde olacaktır:
<?php get_header(); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h1 class="baslik"><?php the_title(); ?></h1>
<div class="icerik"><?php if(is_single()) the_content(); else the_excerpt(); ?></div>
<?php endwhile; ?>
<?php else : ?>
<h2 class="sayfa-bulunamadi"><?php _e( 'Üzgünüm, aradığınızı bulamadık.', 'textdomain' ); ?></h2>
<?php endif; ?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
WordPress, bu şablon dosyasını, hangi içerikleri göstermek için kullanacağına, şablon hiyerarşisi kurallarına göre karar verir.
WordPress Döngüsü Neler Yapabilir?
WordPress döngüsü, şablon fonksiyonları yardımı ile, yazılara ait bir çok farklı özelliği gösterebilir. Aşağıda, sıkça kullanılan bazı şablon fonksiyonları verilmiştir:
next_post_link()
– Görüntülenen sayfadaki yazıdan bir sonraki yazıya bir link verir.previous_post_link()
– Sayfadaki yazıdan bir önceki yazıya link verir.the_category()
– Yazının dahil edildiği kategorileri gösterir.the_author()
– Yazının yazırını getirir.the_content()
– Yazı ya da sayfa metnini getirir.the_excerpt()
– Klasik editörlerde yazılmış yazıların ilk 55 harfini, Gutenberg editörü (blok editör) ile yazılmış yazıların özetini getirir ve “devamını oku” analmında (…) şeklinde bir link verir.the_ID()
– Sayfa ya da yazının id değerini getirir.the_meta()
– Sayfa ya yazının özel alan bilgilerini getirir.the_shortlink()
– Yazı ya da sayfalara ait, sitenin adını ve içeriğin id değerini içeren bir link oluşturur.the_tags()
– İçeriğe ait etiketleri getirir.the_title()
– İçeriğin başlığını getirir.the_time()
– İçeriğin oluşturulma zamanını getirir ve getirdiği bu tarih, PHP diline ait, standart zaman fonksiyonları ile biçimlendirilebilir.
İçeriklere ait yukarıdaki bilgileri getirebileceğiniz gibi, bir döngü içerisinde, aşağıda verilen koşullu ifadeleri kullanarak, içeriklerin belli koşullar yerine geldiğinde gösterilmesini de sağlayabilirsiniz. Bu koşul fonksiyonları şunlardır:
is_home
() – Eğer görüntülenen sayfa ana sayfa ise true değerini döndürür.is_admin
() – Eğer görüntülenen sayfa Yönetim Paneli ise true değerini döndürür.is_single
() – Eğer, görüntülenen sayfada, tek bir yazı gösteriliyorsa true değerini döndürür.is_page
() – Eğer gösterilen sayfa, bir “sayfa” içeriğine aitse, true değerini döndürür.is_page_template
() – Görüntülenen sayfanın, özel bir sayfa şablonu kullanıp kullanmadığını öğrenmek isdeğinizde işini görür. Mesela;
is_page_template( 'benim-sayfam.php' )
ifadesi, ekrandaki sayfanın benim-sayfam.php
şablonunu kullanması durumunda true
değeri alacaktır.
is_category
() – Bir yazının, bu fonksiyonda belirtilen kategoriye ait olup olmadığını anlamamızı sağlar. Mesela;
is_category( 'kitap' )
ifadesi, yazının “kitap” kategorisinden bir yazı olması durumunda true
döndürür.
is_tag
() – Bir yazının, belirtilen etikete sahip olması durumundatrue
döndürür.is_author
() – Bir yazının, belirtilen yazara ait olması durumundatrue
döndürür.is_search
() – Görüntülenen sayfanın, bir arama sayfası olması durumundatrue
döndürür.is_404
() – Görüntülenen sayfanın,404.php
sayfası olması durumunda,true
döndürür.has_excerpt
() – Bir yazı, özet içeriyorsatrue
döndürür.
1 yorum: “2.7 WordPress Döngüsü (Loop)”