WordPress döngüsü: Nedir ve bu konuda bilmeniz gerekenler

Yayınlanan: 2023-10-25

Bir WordPress tema geliştiricisi, programcısı veya WordPress döngüsünün ne olduğunu öğrenmek isteyen genel bir meraklıysanız, bu makale tam size göre! Lafı daha fazla uzatmadan temel bilgilerle başlayalım: Döngü nedir?

WordPress döngüsü, WordPress gönderilerini gösteren veya basitçe ifade etmek gerekirse; Herhangi bir web sayfasındaki gönderileri görüntülemek için çeşitli temalarda kullanılır. Yalnızca gördüğünüz çoğu sayfada çalışmasıyla kalmaz, aynı zamanda onu beğeninize göre değiştirmenize ve özelleştirmenize de olanak tanır.

Bu web sitesi döngüleri, gönderileri yorum sayısına göre listelemek, görselli gönderileri göstermek vb. için kullanılabilir.

Döngüye baktığınızda bazı fonksiyonların gönderileri göstermek için varsayılan olarak çalıştığını görebilirsiniz. Tema geliştiricileri, döngüdeki her gönderinin nasıl gösterileceğini özelleştirmek için bu işlevleri ve şablon etiketlerini kullanabilir.

Bu şablon etiketleri yalnızca WordPress varsayılan döngüsünde çalışır ve gönderi verilerini biçimlendirmek, düzenlemek ve yayınlamak için kullanılır.

WordPress döngüsü şüphesiz WordPress kodunun en önemli parçasıdır ve web sitenizin nasıl döndüğünü derinlemesine inceleyelim.

Yeni başlayanlar için WordPress sayfa döngüsü

Daha önce de belirttiğimiz gibi gönderi döngüsü, WordPress'in bir gönderi veya gönderiler hakkında sahip olduğu tüm bilgilerin çıktısını veren bir koddur. Her gönderi boyunca arka planda çalışır ve veritabanını tek tek bulur, bu da bulunan tüm gönderiler hakkında bilgi sağlamasına olanak tanır.

İşte yazılar arasında WordPress döngüsünün nasıl çalıştığına dair bir örnek:

  1. döngüyü başlatıyorsun,
  2. Bulunan her gönderi veya sayfayla ilgili işlem yapın,
  3. halkayı tamamla.

Bu üç adım döngünün arkasındaki temel mantığı temsil eder. Bu noktadan sonra yaratıcı olabilir ve bulduğunuz gönderileri sorguyu kullanarak filtreleyebilirsiniz. Sorgu döngüye ne aradığımızı söyler. Örneğimizde şöyle görünecektir:

  1. ne aradığımızı tanımlayalım,
  2. döngüyü başlat,
  3. Bulunan her gönderi veya sayfayla ilgili işlem yapın,
  4. halkayı tamamla.

PHP koduyla ilgili deneyiminiz varsa, veritabanı sorgusunu çalıştırmak ve her veritabanı satırını manuel olarak girmek zorunda kalmadan bilgileri dinamik olarak görüntülemek için döngülerde kullanılan "while" işlevine aşina olabilirsiniz.

WordPress while döngüsü de aynı şekilde çalışır.

Standart bir WordPress döngüsü örneği

Aşağıda herhangi bir sayfada kullanılabilecek standart bir WordPress döngüsü örneği verilmiştir.

<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post() ?>
// Post display here
<?php endwhile ?>
<?php else : ?>
// Content if there are no posts to show
<?php endif ?>

have_posts() ve the_post() işlevlerine bir göz atın. Birincisi gösterilecek gönderi olup olmadığını belirler, ikincisi ise have_posts() işlevine yardımcı olacak verileri ve dahili noktaları ayarlar.

Gösterilecek bir şey yoksa, işlevin kullanıcıları bilgilendiren bir mesaj görüntülemesi gerekir.

Aradığımız gönderiler varsa döngü bunları tek tek gösterecektir.

Burada, gönderileri gerçekten gösterecek bir kod bloğunuz var, bu bizim sorumluluğumuzda!

<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post() ?>
<div <?php post_class() ?>>
<h2><a href='<?php the_permalink() ?>'><?php the_title() ?></a></h2>
<div class='post-excerpt'>
<?php the_excerpt() ?>
</div>
<div class='post-meta'>
<time><?php the_time( 'Ymd' ) ?></time>
<?php if ( has_category() ) : ?>
<span class='post-categories'><?php the_category( ', ' ) ?></span>
<?php endif ?>
</div>
</div>
<?php endwhile ?>
<?php else : ?>
<h2>There are no posts here</h2>
<p>Do you want to go back to the <a href='<?php echo site_url() ?>'>home page?
<?php endif ?>

Burada gösterilen içerik, daha önce bahsettiğimiz sorguya göre belirlenir ve bu içeriğin nasıl gösterileceği döngüye bağlıdır. Bu kadar özelleştirme harikadır ve WordPress'i öne çıkaran da budur.

İyi iş! Artık post döngüsünün ne olduğunu biliyorsunuz!

Ana sorguyu değiştirmek için kod kullanma

Başlamadan önce, ne yaptığınızı bilmiyorsanız ana sorguyu değiştirmenin istenmeyen sonuçlara yol açabileceği konusunda sizi uyarmalıyız. Deney yaparken dikkatli olun!

Temel işlevselliği değiştirmek istiyorsak kancalara bakmalıyız. Kancalar metin uzunluğunu değiştirmemize, giriş ekranını değiştirmemize, hata mesajlarını yeniden ifade etmemize, özel gönderi türlerini değiştirmemize ve çok daha fazlasını yapmamıza olanak tanır.

add_action( 'pre_get_posts', 'my_exclude_category' );
function my_exclude_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'cat', '-92' );
}
}

Ana sorgunun parametresini çalıştırılmadan önce değiştirmek için pre_get_post kancasını kullandığımızı unutmayın. Yukarıdaki kod öncekiyle aynı şeyi yapıyor ancak bu sefer kategori 92'yi ana sayfamızdan hariç tutuyor. Bu nedenle, ana sorgu değiştirildi

is_home() ve is_main_query() işlevlerine bir göz atın. Sorgunun yalnızca ana sayfada değiştirildiğinden ve ana sorgu olup olmadığından emin olmak için buradalar.

İşte WordPress blog döngüsünde faydalı olabilecek başka bir kod.

Diyelim ki web sitenizdeki bir yazar, içeriğinin bir kısmını (veya tamamını) intihal etti ve onun tüm yayınlarını kalıcı olarak veya sorun çözülene kadar kaldırmak istiyorsunuz.

Bu, şuna benzer bir kod eklenerek yapılabilir:

add_action( 'pre_get_posts', 'my_exclude_author' );
function my_exclude_author( $query ) {
$query->set( 'author', '-23' );
}

Bu koşullu işlevle yazarın gönderisini hem web sitenizden hem de arka uçtan kaldırırsınız. Tüm koşullu etiketleri WordPress Kodeksinde bulabilirsiniz. İşte son kodun sonunda nasıl görünmesi gerektiği:

add_action( 'pre_get_posts', 'my_exclude_author' );
function my_exclude_author( $query ) {
if( !is_admin() ) {
$query->set( 'author', '-23' );
}
}

WordPress döngüsü hakkında SSS

WordPress döngüsü nedir bu arada?

Ah dostum, bu beni geçmişe götürüyor! Yani özünde WordPress döngüsü , sitenizdeki veritabanındaki içeriği görüntüleyen WP'nin motorudur.

Birçok WP şablonunun kalbidir ve sisteme hangi yazıların veya sayfaların hangi sırayla gösterileceğini söyler. Bunu, misafirleriniz için doğru melodileri (veya gönderileri) seçen WordPress partinizin DJ'i olarak düşünün.

Döngü tema geliştirmede neden bu kadar önemlidir?

Ah, tema geliştirme , her seferinde eğlenceli bir bulmaca! Döngü bir WordPress temasının omurgası gibidir. O olmasaydı temanız konusu olmayan sessiz bir film olurdu.

İçeriği WP_Query parametrelerine göre getirir ve şablon etiketleri aracılığıyla içeriğin ne ve nasıl görüntüleneceğini özelleştirebilirsiniz. Belirli gönderiler için özel stillere sahip temalar duydunuz mu? Evet, döngünün büyüsü iş başında.

WP_Query'nin döngüyle ilişkisi nedir?

Tamam, benimle birlikte buraya dal. WP_Query , içeriği tanımlayan ve getiren sınıftır. Döngü daha sonra WP_Query'nin döndürdüğü sonuçların üzerinden geçer.

WP_Query'yi, yemekleri hazırlayan şef olarak düşünün, döngü ise onları misafirlerinize servis ediyor. Özel posta türleri ve sınıflandırmalarla bu şef, etkileyici çeşitlilikte yemekler hazırlayabilir!

have_posts() ve the_post() arasındaki fark nedir?

Klasik soru! have_posts() sorguda döngü yapılacak gönderilerin kalıp kalmadığını kontrol eder. Bu, "Hey, o çalma listesinde başka şarkı var mı?" diye sormak gibi bir şey.

Bu arada, the_post() geçerli gönderiyi ayarlar, böylece ayrıntılarını görüntülemeye hazır olursunuz. Bir sonraki parçada play tuşuna basmaya benzer. Her ikisi de döngü dansında çok önemlidir.

Döngüde hangi gönderilerin görüneceğini nasıl özelleştirebilirim?

Ah, kişiselleştirmenin gücü! Hangi gönderilerin görüneceğini değiştirmek için WP_Query parametrelerini değiştirirsiniz veya pre_get_posts filtresini kullanırsınız.

İster kategori döngüsü , ister etiket döngüsü , ister başka bir özel sorgu olsun, yapabileceğiniz çok şey var. Belirli bir kategorideki gönderileri mi göstermek istiyorsunuz? Veya bunları özel bir alana göre sıralayabilir misiniz? Dünya senin istiridyen!

Bir sayfada birden fazla döngüye sahip olabilir miyim?

Eminim! Çoklu döngüler bir şeydir, özellikle de ana makale listesi ve ardından son gönderileri içeren bir kenar çubuğu gibi farklı bölümler istediğinizde.

Her özel WP_Query'den sonra döngüyü wp_reset_postdata() ile sıfırlamanız yeterlidir. Ve şablon parçalarıyla daha da düzenli. Sadece aşırıya kaçmamayı unutmayın; kimse karmaşık bir partiden hoşlanmaz!

Döngü bağlamındaki koşullu etiketler nelerdir?

Yani koşullu etiketler döngünün bekçileridir. Belirli içeriğin nerede ve ne zaman görüntüleneceğini kontrol etmenize olanak tanırlar.

Bunları yalnızca tek gönderilerde veya yalnızca belirli bir sınıflandırmada bir içerik parçasını göstermek için kullanabilirsiniz. WP kulübünüzün fedaileri gibiler, konuk listesine göre kimin gireceğine karar veriyorlar.

Döngüye sayfalandırmayı nasıl eklerim?

Ah, sayfalandırma, ziyaretçilerinizi bunaltmama sanatı! Sayfalandırma işlevlerini kullanarak yayınlarınızı birden fazla sayfaya bölebilirsiniz.

Hiç bitmeyen bir gönderi listesi göstermek yerine kullanıcılarınıza bir nefes verin. paginate_links() veya klasik "sonraki ve önceki" bağlantılar gibi işlevler burada yardımcı olur. Çünkü gerçekçi olalım, kimse sonsuza kadar kaydırma yapmak istemez.

Ana sorguyu neden değiştirmem gerekiyor?

İyi bir! Bazen varsayılan ayarlar yeterli olmayabilir. Belki ana sayfanızın yalnızca belirli bir özel gönderi türünü göstermesini veya belirli kategorileri hariç tutmasını istiyorsunuz.

pre_get_posts eylemini kullanarak, yeni bir sorgu yazmadan ana sorguyu değiştirebilirsiniz. Mükemmel ses için müzik setinizin ana ayarlarını yapmak gibidir.

Döngümde bir sorun olursa ne olur?

Ah, oradaydım! Döngüde bir sorun varsa siteniz içerik göstermeyebilir veya daha da kötüsü hatalar verebilir. Tamir etmeden önce daima yedekleyin. WP_Query parametrelerinizi ve şablon hiyerarşinizi kontrol edin.

Ve eğer her şey başarısız olursa, WordPress Kodeksi ve topluluk forumları sorun giderme için altın madenleridir. Unutmayın, her geliştirici en az bir kez aksaklık döngüsüyle karşı karşıya kalır. Yapabilirsin!

WordPress döngüsüyle ilgili düşüncelerin sona ermesi

WordPress döngüsünü kullanmak, yayınlarınızı, sayfalarınızı veya basitçe web sitenizi özelleştirmenin harika bir yoludur. Döngü, WordPress'in nasıl çalıştığı ve kod mantığı hakkında temel bir anlayışa sahip olmanızı gerektirir.

Hızlı bir test yapmak istemediğiniz sürece query_posts() işlevini kullanmanızı önermeyiz. Orijinal sorguyu değiştirmeniz gerekmesi durumunda çeşitli kancalar kullanabilirsiniz. WordPress döngü kodunu değiştirirken her zaman dikkatli olun.

Bu makalenin WordPress döngü ustalığınıza doğru iyi bir ilk adım olduğunu umuyoruz!

WordPress döngüsü hakkındaki bu makaleyi beğendiyseniz şunları da okumalısınız:

  • WordPress'te 504 hatası: Nasıl düzeltilir?
  • Başarılı Bir WordPress Premium Eklentisi veya Teması Oluşturmak İçin 12 İpucu
  • WordPress’te Tarayıcı Önbelleğe Almadan Nasıl Yararlanılır? Takip edilecek adımlar