WP_Query’de Uzmanlaşma: Döngüyü Kullanma

WP_Query'de Uzmanlaşma: Döngüyü Kullanma

ana hatlarıyla belirttiğim gibi giriiş bu diziye, WP_Query sınıfın dört ana unsuru vardır:

  • Bu seride ayrıntılı olarak ele alınacak parametreleri kullanarak sorgu için argümanlar
  • sorgunun kendisi
  • gönderi içeriği, başlıklar veya görüntülemek istediğiniz her şeyi çıkaracak döngü
  • bitirme: if ve while etiketlerini kapatma ve gönderi verilerini sıfırlama

Bu derste size döngünün nasıl kullanılacağını göstereceğim. WP_Querydöngünüzü yapılandırmanın iki ana yolu ve birden çok döngünün nasıl kullanılacağı dahil.

Döngünün Uyduğu Yer

olmadan döngü, sayfanızda hiçbir şey görüntülenmez. WordPress, tanımladığınız argümanları kullanarak sorguyu çalıştırdıktan sonra, kendisine getirilen verilerden ne çıkarılacağının söylenmesi gerekir. Döngü burada devreye giriyor.

Döngü sorgunuzdan sonra gelir ve üç etiket kullanır:

  • if( $query->have_posts() ) yazı olup olmadığını kontrol eder. değerini kontrol ederek yapar. post_count sorgumuz için özellik, değerinden küçük current_post + 1.
  • while( $query->have_posts() ) alınacak gönderiler olduğu sürece her gönderi için döngüyü tekrarlar. Gördüğünüz gibi, bu have_posts() yöntem, daha önce herhangi bir gönderi olup olmadığını kontrol etmek için çağırdığımızla aynıdır. Bu yöntemin gönderi sayacını artırmadığını unutmayın. Döngüde herhangi bir gönderi olup olmadığını veya döngünün sonunda olup olmadığımızı bize bildirir. Ayrıca sona ulaştığımızda döngüyü otomatik olarak geri saracaktır.
  • $query->the_post() o belirli gönderiye erişir. Gönderi sayacını artırdığı bir sonraki gönderiyi almak gibi birkaç şey daha yapar. Ayrıca, kullanmamız için küresel gönderi verilerini ayarlar.

aramamalısın have_posts() döngü içindeyken yöntem. Bunun nedeni ise have_posts() döngüyü başa saracak ve sonsuz bir döngüde sıkışıp kalacaksınız.

Şimdi, bu, döngünün WP_Query sınıf:

Döngüyü çalıştırdıktan sonra, geriye kalan tek şey kullanarak işleri toparlamak. wp_reset_postdata().

Döngünün Yapısı

Döngünüzün yapılandırılma şekli, gönderinizden hangi verileri görüntülemek istediğinize bağlı olacaktır. İşte gönderi başlığını, öne çıkan görseli ve bir alıntıyı veren örnek bir döngü. Bir arşiv sayfasında bunun gibi bir döngü kullanırsınız.

Bu döngü tam olarak yukarıda tanımladığım şeyi görüntüler: öne çıkan resim, başlık ve alıntı.

Döngüyü Daha İleriye Taşımak: İçeriği Kontrol Etme

Ancak bazen gönderiler listenizden önce bir başlık eklemek isteyebilirsiniz veya hepsini içeren bir öğeye dahil etmek isteyebilirsiniz. Bunu döngünüzden önce eklediyseniz, sorgunun gerçekten herhangi bir veri döndürüp döndürmediğine bakılmaksızın çıktı alınır, yani altında hiçbir şey olmayan bir başlığınız veya bazı gereksiz işaretlemeleriniz olabilir.

Bu, çevreleyen öğeyi veya başlığınızı içine koyarak etrafta dolaşmak çok kolaydır. if etiket:

Burada, sorgum tarafından alınan herhangi bir gönderi olup olmadığını kontrol ettiğimi ve varsa içeren bir öğe açıp bir başlık eklediğimi görebilirsiniz.

Bu, sorgunuzun sonuçlarını bir liste olarak çıktılamak istiyorsanız da kullanışlıdır. Belirli bir kategorideki tüm gönderilerin bir listesini oluşturmak istediğimi varsayalım. bu ul öğe, belirli bir gönderiyle ilgili olmadığı için döngümde değil, ancak yalnızca gönderiler varsa çıktısını almak istiyorum. Bu yüzden bunu kullanıyorum:

Bu, sorgunun herhangi bir gönderi alıp almadığını kontrol eder ve eğer öyleyse, ul eleman ve ardından döngüyü çalıştırır.

Ekstra Döngüler Çalıştırmak

kullanabileceğinizin farkında olmak önemlidir. WP_Query birden fazla döngü çalıştırmak için gönderi verilerini sıfırlamanız ve ikinci bir örneğini başlatmanız gerekir. WP_Query Bunu yapmak için. Bunun nedeni, döngülerinizin her birinin farklı argümanlara dayalı olarak veri çıkarmasıdır.

Bu örnek, ilk gönderi için alıntıyı ve öne çıkan resmi ve ardından sonraki her gönderinin başlığını gösterir:

Burada iki temel argüman kullandım:

  • 'posts_per_page' => '1'ilk sorguyla birlikte kullanıldığında yalnızca en son gönderiyi verir.
  • 'offset' = '1'ikinci sorguyla birlikte kullanıldığında, ilk gönderiyi atlayarak aşağıdaki listede tekrarlanmamasını sağlar.

Yukarıdaki koddan da görebileceğiniz gibi, döngü her sorgu için biraz farklıdır. Birincisi, öne çıkan görseli, başlığı ve alıntıyı çıkarırken, ikincisi sorgunun gönderileri olup olmadığını kontrol eder ve varsa, bir ul öğesi ve her yazı başlığını bir li öğesi ve sayfasına bir bağlantı.

Ayrıca kullandığımı fark edeceksiniz. wp_reset_postdata() her iki döngüden sonra. Bunu yapmamış olsaydım, ikincil döngülerimizin dışında şablon etiketleri kullanmak, döngüler içindeki son gönderi hakkında bana veri verecekti. Bu işlevin çağrılması, gönderi verilerini ana sorguya sıfırlar.

Döngü İçinde Posta Bilgilerine Erişme

Güncel gönderi ile ilgili bilgilere ulaşmak için döngü içerisinde çağırabileceğiniz birçok fonksiyon bulunmaktadır. Bazılarının bu eğitimde de kullanıldığını gördünüz. Bu bölümde, muhtemelen ara sıra kullanacağınız bazı yaygın işlevlerin bir listesini vereceğim.

Başlığı Alın

Gönderinin başlığını almak için kullanabileceğiniz üç işlev vardır. Bunlar the_title(), get_the_title()ve the_title_attribute(). bu get_the_title() işlevi yalnızca yazı başlığını alırken, the_title() iletilen argümanlara dayalı olarak isteğe bağlı işaretleme ile birlikte başlığı görüntüler veya alır. Kullanmalısın the_title_attribute() Başlığı görüntülemeden önce sterilize etmek istediğinizde.

Alıntıyı veya Tam İçeriği Alın

adlı özel bir işlev vardır. the_excerpt() Geçerli gönderinin alıntısını görüntülemek için. İzleyicilere düzgün bir şekilde gösterilebilmesi için sağlanan alıntıya birkaç filtre uygular. Her gönderide yazar tarafından sağlanan bir alıntı olmayacaktır. Bu gibi durumlarda, görüntülemeden önce tam gönderi alıntısının kısaltılmış bir versiyonunu oluşturacaktır.

İşlevi kullanarak gönderinin tüm içeriğini görüntüleyebilirsiniz. the_content().

Gönderi Kategorilerini, Etiketleri ve Diğer Meta Verileri Alın

WordPress gönderilerinizde genellikle sizin tarafınızdan atanan bazı etiketler veya kategoriler bulunur. kullanarak bu etiketlerin ve kategorilerin bir listesini döngü içinde görüntüleyebilirsiniz. the_tags() ve the_category() fonksiyonlar. Kullan the_author() yazının yazarını görüntüleme işlevi. Gönderinin kimliğine de işlevle erişilebilir the_ID().

Yayın veya Değişiklik Tarihi ve Saatini Alın

WordPress’te, yayın tarihini görüntülemek için döngü içinde kullanabileceğiniz özel işlevler vardır (the_date()) ve zaman (the_time()) bir yazının. Aklınızda bulundurmanız gereken iki önemli nokta şudur: the_time() ayrıca bir gönderinin yayın tarihini görüntülemek için de kullanılabilir. Ayrıca, çıktısı the_date() aynı gün yayınlanan birden fazla gönderi için yalnızca bir kez yankılanır. Bu temelde, neredeyse her zaman kullanmak isteyeceğiniz anlamına gelir. the_time() Daha fazla esneklik ve kullanım kolaylığı için.

Özet

Döngü olmadan, WP_Query gerçekten çok yapmıyor. Döngü, WordPress’in sorgu argümanlarınıza göre veritabanından aldığı verileri görüntülemek için kullandığınız koddur.

Gösterdiğim gibi, döngüde birkaç varyasyon var. Basit bir döngü, tüm gönderileri, sorgu argümanlarınızda belirttiğiniz sırayla (veya varsayılan olarak azalan sırayla tarihe göre) çıkaracaktır. eğer ayırırsan if( $query->have_posts() ) ve while( $query->have_posts() ), döngünüzün dışına ek işaretleme ekleyebilirsiniz, ancak yalnızca sorgunuz veri döndürdüyse. Ve son olarak, alternatif argümanlar belirleyerek ve kullanarak wp_reset_postdata() her döngüden sonra kullanabilirsiniz WP_Query sayfanızda birden çok döngü oluşturmak için birden fazla.

Bu gönderi, şu kişilerin katkılarıyla güncellendi: Nitish Kumar. Nitish, çeşitli platformlarda e-ticaret web siteleri oluşturma deneyimine sahip bir web geliştiricisidir. Boş zamanlarını günlük hayatını kolaylaştıran kişisel projeler üzerinde çalışarak ya da arkadaşlarıyla uzun akşam yürüyüşleri yaparak geçiriyor.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.