WordPress Döngüsü Açıklandı: Nedir ve Nasıl Çalışır?
Yayınlanan: 2022-03-12Döngü, WordPress'in merkezi bir parçasıdır. Onsuz, herhangi bir WordPress web sitesinde içerik göremezsiniz. Makalelerin blog sayfasında ve arşivlerde ve tek sayfalarda statik içeriğin görünmesini sağlamaktan sorumludur.
Bir tema tasarımcısıysanız, onu nasıl kullanacağınızı öğrenmekle uğraşmazsınız. Ancak, sıradan bir WordPress kullanıcısı olarak, var olduğunun farkında bile olmayabilirsiniz.
Bunu hafifletmek için bu yazıda WordPress döngüsünü ayrıntılı olarak açıklayacağız. Ne olduğunu, nasıl çalıştığını ve WordPress'te nerede bulacağını gözden geçireceğiz. Ayrıca kendinizinkini nasıl oluşturacağınızı öğrenecek ve anlayışınızı sağlamlaştırmak için bazı WordPress döngüsü örneklerini göreceksiniz.
WordPress Döngüsü Nedir (Ve Onu Nerede Bulabilirsiniz)?

WordPress döngüsünün ne olduğunu kısaca açıklayacak olursanız, bu yalnızca bir WordPress web sitesindeki sayfalardaki içeriği alıp çıkaran işaretlemedir. İster statik bir sayfa, gönderi, blog sayfası veya arşiv olsun - WordPress'in veritabanından içerik alıp bir sayfada gösterdiği her yerde döngü söz konusudur.
Ancak, neden ilk etapta döngü denir?
Çünkü tekrar tekrar çalışacaktır. Artı, aşağıda göreceğiniz gibi, kelimenin tam anlamıyla bir PHP döngüsünden oluşur.
WordPress döngüsü ne sıklıkla çalışır?
Gösterilecek hiçbir şey kalmayana kadar. Statik sayfalarda bile mevcut içerik arasında dolaşıyor. Ancak bu durumda bir geçişten sonra durur.
WordPress Döngüsü Neye benziyor?
Neden bahsettiğimizi daha açık hale getirmek için, bir örneğe bakalım ve adım adım üzerinden geçelim. Basit bir WordPress döngüsünün nasıl göründüğüne bir örnek:
if ( have_posts() ) : while ( have_posts() ) : the_post(); // Display content here endwhile; endif;
Zaten PHP biliyorsanız veya bir WordPress geliştiricisiyseniz, onu anlamakta sorun yaşamamalısınız. Ancak, diğer herkes için, parçaları tek tek gözden geçirelim.
-
if ( have_posts() )
: — Bu, have_posts() işlevini kullanan birif
ifadesidir. Programlamada ifadeler yaygınsa, basitçe “aşağıdaki koşul geçerliyse devam edin” derler. Bu durumda, koşul, görüntülenebilecek herhangi bir gönderi olup olmadığının kontrolü olanhave_posts()
şeklindedir. -
while ( have_posts() )
: — Bu satır birwhile
- döngüsüdür ve WordPress döngüsünün başlangıcını belirtir. Koşul doğru olduğu sürece içerdiği kodu yürütür. Yine, koşul, WordPress'in mağazada herhangi bir gönderi olup olmadığıdır. Ne sıklıktatrue
döneceği, yönetici arayüzündeki WordPress ayarlarında ayarlanan gönderilerin sayısına göre belirlenir. -
the_post();
- Bu, döngünün yürüttüğü koddur. Bir sonraki gönderi için mevcut tüm verileri çağıran ve görüntülenmeye hazır hale getirmek için kaydeden bir WordPress işlevidir. Bunun için aşağıda bahsedeceğimiz birçok şablon etiketimiz var. -
// Display content here
— İçeriğin hangi bölümünün ve hangi şekilde görüntüleneceğini belirleyen işaretlemeyi buraya yerleştiriyoruz. Genellikle PHP ve HTML'nin bir karışımıdır. Daha karmaşık olduğu için burada göstermiyoruz ve daha sonra ele alacağız. -
endwhile;
- Yapmamız gerekeni yaptıktan sonrawhile
döngüsünü kapatan kod parçası. -
endif;
— Yukarıdakiyle aynı, ancakif
ifadesi için.
Yani, temel olarak yapı şu şekildedir: gönderilerin olup olmadığını kontrol edin, ardından gerekli verileri veritabanından çekin ve önceden belirlenmiş bir şekilde görüntüleyin, gösterilecek geçerli gönderiler olduğu sürece bunu tekrarlayın.
Alternatif Sözdizimi
Hızlı bir şey, ayrıca bazen şöyle yazılmış döngü göreceksiniz:
if ( have_posts() ) { while ( have_posts() ) { the_post(); // Display content here } // end while } // end if
Bu, yukarıdaki örnekle tamamen aynıdır, sadece alternatif bir PHP sözdiziminde. Hangisini kullanacağınız gerçekten size kalmış. Tutarlılık uğruna, ilk varyasyonla devam edeceğiz.
WordPress Döngüsü Nerede Bulunur?
Bir sayfada içerik göründüğünde döngünün her zaman çalışır durumda olması, WordPress döngüsünün nerede bulunacağını zaten cevaplar. Cevaplar, temanızın içeriği görüntüleyen her şablon dosyasındadır.
Alternatif olarak, tema mimarinize bağlı olarak bir şablon bölümünde de olabilir. Bunlar, sık kullanılan kod parçalarını (döngü gibi) içeren şablon dosyalarıdır. Her seferinde aynı kod parçacığını yeniden kullanmak yerine başka dosyalara çekilebilirler.

Örneğin, Twenty Twenty-One temasının page.php
dosyasını açarsanız, burada döngünün parçalara ayrıldığını görebilirsiniz. Dosyanın kendi içinde başlarken, verilerin nasıl çıktı alınacağını belirleyen bölüm, content-page.php
adlı bir şablon bölümünde bulunur.
/* Start the Loop */ while ( have_posts() ) : the_post(); get_template_part( 'template-parts/content/content-page' ); // If comments are open or there is at least one comment, load up the comment template. if ( comments_open() || get_comments_number() ) { comments_template(); } endwhile; // End of the loop.
WordPress şablon hiyerarşisi, sistemin ne tür bir sayfa görüntülemek için hangi dosyayı kullanacağını ve her dosyanın bir döngü veya onu nerede bulabileceğinize dair bir referans içermesi gerektiğini belirler.
Bu aynı zamanda döngünün tek tek dosyalarda, yani farklı sayfalarda farklı görünebileceği anlamına gelir. Örneğin, bir arşivde yalnızca gönderi alıntılarını görüntülemek isteyebilirsiniz, ancak ana blog sayfasında tüm gönderileri ("daha fazla oku" bağlantısına kadar) göstermek isteyebilirsiniz. Bunun için farklı işaretleme türlerine ihtiyacınız var, bu nedenle döngü home.php
ve archive.php
içinde aynı görünmez.
Döngü Nasıl Oluşturulur
Bir döngü oluşturmak için temel olarak yukarıda incelediğimiz basit kodla başlayabilirsiniz. Bu gerçekten standart döngü. İşte yine:
if ( have_posts() ) : while ( have_posts() ) : the_post(); // Display content here endwhile; endif;
Zor kısım, bizim dışarıda bıraktığımız kısımdır: içeriğin görüntülenmesini belirleyen kısım. Bunun için, belirtildiği gibi, genellikle bir HTML ve PHP karışımı kullanırsınız. Örneğin, WordPress'e özel bir sınıf ve kimliğe sahip bir <article>
etiketine sarılmış gönderiyi, bir h1
başlığı olarak başlığı ve ayrıca öne çıkan resim ve içeriği tükürmesini nasıl söyleyeceğiniz aşağıda açıklanmıştır.
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <article <?php post_class(); ?>> <h1><?php the_title(); ?></h1> <?php the_post_thumbnail(); ?> <?php the_content(); ?> </article> <?php endwhile; endif; ?>
Yukarıda göze çarpan bir şey, alt çizgi ile yazılmış çok sayıda etiketin olmasıdır. Bunlar, içeriğin ortak bölümlerini çağırmak için kısayollar sunan WordPress şablon etiketleridir. Burada, gönderi başlığını görüntülemek için the_title()
, öne çıkan görüntü için the_post_thumbnail()
the_content()
ve ana içerik için the_content() kullanıyoruz. the_excerpt()
veya the_category()
gibi çok daha fazlası var. Burada seçeneklerin bir listesini bulabilirsiniz.
WordPress döngüsü için önemli olan bir diğer şey de koşullu etiketlerdir. Yalnızca belirli koşullar altında bir şeyi görüntülemek için döngüyle ilgili işaretlemede çok kullanıldığını görüyorsunuz. Örneğin, the_post_thumbnail()
bir koşullu ifadeye sarmak, WordPress'in öne çıkan bir resim olmadığında onu sayfada yayınlamaya çalışmasını engellemek çok yaygındır.
<?php if ( has_post_thumbnail() ): the_post_thumbnail(); endif; ?>
Aşağıda daha fazla örneğimiz var. Koşullu etiketler hakkında daha fazla bilgi edinmek için WordPress Kodeksine bakın.
WordPress Döngüsüne Örnekler
Bu öğreticinin son kısmı olarak, WordPress döngüsünün nasıl kullanılacağına ilişkin bazı örneklerin üzerinden geçeceğiz.
Yirmi Yirmi Bir Tema
Twenty Twenty-One temasına bakıldığında ilk göze çarpan şey şablon parçalarının yoğun kullanımı. page.php
, single.php
ve hatta index.php
gibi tüm standart şablon dosyaları, dosyanın içindeki döngüyü başlatır, ancak daha sonra içerik görüntüsünü diğer dosyalara boşaltmak için get_template_part
kullanın. Bu durumda, bunlar sırasıyla content-page.php
, content-single.php
ve content.php
. Örnek olarak single.php
kısaltılmış versiyonu:
<?php get_header(); /* Start the Loop */ while ( have_posts() ) : the_post(); get_template_part( 'template-parts/content/content-single' ); // additional code for comments and post navigation endwhile; // End of the loop. get_footer();
Bu aynı zamanda diğer dosyalarda da görülebilir. Örneğin, üstbilgi ve altbilgi de kendi şablon bölümlerine sahiptir. Döngünün içindekilere referansları başka yerlerde görebilirsiniz. Örneğin, content-single.php
-single.php dosyasına bakarsanız, sonunda author-bio.php
şablon kısmına bir çağrı görebilirsiniz.

<article <?php post_class(); ?>> <header class="entry-header alignwide"> <?php the_title( '<h1 class="entry-title">', '</h1>' ); ?> <?php twenty_twenty_one_post_thumbnail(); ?> </header><!-- .entry-header --> <div class="entry-content"> <?php the_content(); wp_link_pages( array( 'before' => '<nav class="page-links" aria-label="' . esc_attr__( 'Page', 'twentytwentyone' ) . '">', 'after' => '</nav>', /* translators: %: Page number. */ 'pagelink' => esc_html__( 'Page %', 'twentytwentyone' ), ) ); ?> </div><!-- .entry-content --> <footer class="entry-footer default-max-width"> <?php twenty_twenty_one_entry_meta_footer(); ?> </footer><!-- .entry-footer --> <?php if ( ! is_singular( 'attachment' ) ) : ?> <?php get_template_part( 'template-parts/post/author-bio' ); ?> <?php endif; ?> </article><!-- #post-<?php the_ID(); ?> -->
Bunun dışında, nispeten standart bir fuar:
- Özel bir kimliğe ve sınıfa sahip bir
<article>
HTML öğesi açın - Bir h1 başlığına sarılmış başlığı çıkaran ve Twenty Twenty-One'a özel bir işlevle öne çıkan resmi görüntüleyen makale başlığı öğesini oluşturun
- Bunu, tek gönderi içeriğinin çıktısını almak için
the_content()
şablon etiketini içeren birentry-content
öğesiyle takip edin. - Sayfalandırma için işaretlemeyi ve meta sonrası bilgileri görüntülemek için başka bir Yirmi Yirmi Bir işleviyle giriş alt bilgisini dahil edin
- Son olarak, kendi şablon bölümünde yazar biyografisine yukarıda belirtilen çağrı var.
Yirmi On WordPress Varsayılan Teması
İlk WordPress varsayılan teması olan Twenty Ten'e geri dönerseniz ve sürüm 1.0'dan dosyalara bakmak için subversion deposunu kullanırsanız, döngü ve şablon dosyalarının işlenmesinin zaman içinde nasıl geliştiğini görebilirsiniz. O zamanlar, şablon dosyalarının çoğu, yeniden kullanılabilir şablon parçalarına dış kaynak sağlamak yerine kendi eksiksiz WordPress döngülerini içeriyordu. Bunu temanın page.php
açıkça görebilirsiniz.
<?php get_header(); ?> <div> <div role="main"> <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?> <div <?php post_class(); ?>> <?php if ( is_front_page() ) { ?> <h2 class="entry-title"><?php the_title(); ?></h2> <?php } else { ?> <h1 class="entry-title"><?php the_title(); ?></h1> <?php } ?> <div class="entry-content"> <?php the_content(); ?> <?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'twentyten' ), 'after' => '</div>' ) ); ?> <?php edit_post_link( __( 'Edit', 'twentyten' ), '<span class="edit-link">', '</span>' ); ?> </div><!-- .entry-content --> </div><!-- #post-## --> <?php comments_template( '', true ); ?> <?php endwhile; ?> </div><!-- #content --> </div><!-- #container --> <?php get_sidebar(); ?> <?php get_footer(); ?>
Aynısı, temanın sunduğu özel bir sayfa şablonunu kontrol eden bir dosya olan onecolumn-page.php
da görülebilir. Ayrıca kayda değer olan şey, o zamanlar bir satırda yazılmış olan döngüye yapılan eski çağrıyı kullanmasıdır.
<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
Modern temalarda, genellikle kodun okunabilirliğini artırmak için daha önce görüldüğü gibi birkaç satıra yayıldığını görürsünüz.
Twenty Ten teması ayrıca, kelime sınırımı aşmadan buraya eklenemeyecek kadar uzun olan bağımsız bir loop.php
dosyasına sahiptir. Çeşitli gönderi türlerinin (resim galerisi, Asides kategorisindeki gönderiler, diğer tüm gönderiler) görüntülenmesini kontrol eden üç bölüme ayrılmıştır. Bunların her biri, arşiv ve arama sayfaları gibi farklı durumları hesaba katmak için if
ve else
ifadeleriyle daha da bölünür.
<?php while ( have_posts() ) : the_post(); ?> <?php /* How to display posts of the Gallery format. The gallery category is the old way. */ ?> // Lots of code here <?php else : ?> // Lots of code here as well <?php endif; ?> <?php /* How to display posts of the Aside format. The asides category is the old way. */ ?> // Even more code <?php /* How to display all other posts. */ ?> <?php else : ?> // Still more code <?php else : ?> // A bit more markup <?php endif; ?> // And a bit more code <?php endif; // This was the if statement that broke the loop into three parts based on categories. ?> <?php endwhile; // End of the loop. Whew. ?>
Her şey oldukça dolambaçlı bir mantık içeriyor, bu yüzden oldukça uzun ve karmaşık çıkıyor. Bugün bunları ele almanın başka yollarına sahip olduğumuza sevindim ve öykünmek istemediğiniz bir WordPress döngü örneğini görmek için ona bir göz atmanızı tavsiye ederim.
Bu arada, o zamandan beri geliştiricilere karşı çok sert olduğumu düşünüyorsanız, emin olun, değerlendirmeme katılıyorlar. Sadece loop.php
kapattığı geliştirici yorumuna bakın.
<?php endwhile; // End the loop. Whew. ?>
WordPress Sorgu Döngüsü Bloğu
Nispeten yeni bir Gutenberg özelliği olduğu için bunun farkında olmayabilirsiniz, ancak blok düzenleyici (ve buna bağlı olarak tam site düzenleme) artık bir WordPress döngüsü içeren bir bloğa da sahip. Buna Sorgu Döngüsü Bloğu denir ve diğer bloklar gibi sitenize ekleyebilirsiniz. En kolay yol, bir eğik çizgi eklemek ve adını /queryloop gibi yazmaktır. Enter tuşuna basın ve sayfada görünecektir.

Blok, kod yazmak zorunda kalmadan bir PHP döngüsü oluşturmaya izin verir. Sitenizdeki en son gönderileri otomatik olarak görüntüler. Bunun yanı sıra, çeşitli özelleştirme seçeneklerine sahiptir. Her şeyden önce, blok bir dizi önceden ayarlanmış düzen ile birlikte gelir. Oklarla bunlar arasında gezinebilir veya hepsini bir kerede görmek için Izgara seçeneğine tıklayabilirsiniz.

İstediğinizi seçin veya seçimi tamamlamak için en sevdiğiniz seçeneğe ulaştıysanız Seç'e tıklayın. Düzenlerin blok desenlerinden oluştuğunu, yani önceden düzenlenmiş tek blok gruplarından oluştuğunu not etmek önemlidir. Bu aynı zamanda onları gerektiği gibi farklı şekilde düzenleyebileceğiniz anlamına gelir, bunlar hala normal bloklardır. Okları kullanın veya istediğiniz yere taşımak için Sürükle seçeneğini tıklayın ve basılı tutun.
Ek olarak, her blok (ve genellikle her blok grubu), ana düzenleyici ekranında ve kenar çubuğunda olağan seçenekleriyle birlikte gelir. Burada renklerini, yazı tipi boyutlarını, biçimlerini ve daha fazlasını değiştirebilirsiniz.

Memnun kaldığınızda, sayfayı yayınlar veya önizlerseniz, üzerinde özel WordPress sorgu döngünüzün göründüğünü göreceksiniz. Bu nedenle, bir WordPress geliştiricisi olmasanız ve PHP'yi anlamasanız bile, döngünün sunduğu şeylerden yine de yararlanabilirsiniz.
Özetle Açıklanan WordPress Döngüsü
Döngü, herhangi bir WordPress profesyonelinin aşina olması gereken bir şeydir. Ancak, daha sıradan bir kullanıcı olsanız bile, nasıl çalıştığını anlamak yine de kötü bir fikir değil. İsterseniz sorunları gidermeyi veya özel sayfa şablonları oluşturmayı kolaylaştırabilir.
Bu yazıda, döngünün ne olduğunu, nerede bulunduğunu ve ayrıntılı olarak parçaladık. Ayrıca kendi döngünüzü nasıl oluşturabileceğinize ve varsayılan temalardan ve yeni sorgu bloğundan örneklere de göz attık. Artık WordPress döngüsünü oluşturmak ve özelleştirmek için ihtiyacınız olan her şeyi biliyorsunuz.
WordPress döngüsünün en sevdiğiniz kullanımı nedir? Lütfen düşüncelerinizi aşağıdaki yorumlarda paylaşın!
Resimler: Jonny Gios/Unsplash, Tine Ivanic/Unsplash