PHP

WP_Query’de Uzmanlaşma: 10 Faydalı Örnek

hakkında neredeyse her şeyi öğrendiğimize göre WP_Query sınıf, bazı örnekleri denemenin zamanı geldi. Bu bölümde, aşağıdakileri kullanmak için on farklı senaryo üzerinde çalışacağız. WP_Query sınıf ve ilgili işlevler.

Eğlenceli bir egzersiz olacak ve umarım aynı derecede eğitici olur. Hadi başlayalım!

WP_Query ile Döngü Oluşturma Üzerine Hızlı Bir Eğitim

Bir tazeleme olarak, burada aşağıdakilerle WordPress döngüleri oluşturmaya yönelik bir mini eğitim verilmiştir. WP_Query sınıf. Gerçekten, normal bir döngü oluşturmaktan farklı değil. Tipik bir WordPress döngüsü şu şekildedir:

Ve ile bir döngü oluşturmak WP_Query sınıfın yalnızca birkaç farkı vardır:

İkinci versiyondaki farklılıkları görelim:

  • Bizim için bazı argümanlar belirledik WP_Query misal.
  • somutlaştırdık WP_Query sınıf.
  • Ekledik $my_query-> başlangıcına have_posts() ve the_post() işlevler (bu yüzden artık WP_Query sınıf).
  • verilerini sıfırladık $post böylece ana sorguya dönebilir.

Artık bir döngünün nasıl oluşturulacağını biliyoruz. WP_Query ve normal bir döngü ile oluşturulan bir döngü arasındaki fark WP_Query. Her örnekte döngü oluşturmayacağız (öğreticiyi kısa ve konuyla ilgili tutmak adına), bu nedenle aşağıdaki örneklerle bir döngü oluşturmanız gerekiyorsa bu bölüme başvurabilirsiniz.

Örnek 1: Bir Yazarın Bu Yıl Gönderilerinin Tümü

Diyelim ki belirli bir yazarın cari yılda yazdığı gönderilerini özel bir listede listelemek istiyorsunuz. Yazarın Bu Yıl Gönderileri bölüm. İki basit bir kombinasyon WP_Query parametreler yeterli olacaktır:

Bu sorguyu bir döngüde iletin ve hazırsınız!

Örnek 2: Bu Kategoriden Son Gönderiler (Mevcut Gönderi Hariç)

Diyelim ki, tek gönderi sayfalarında her gönderinin altında bir döngü oluşturmak ve gönderinin bulunduğu kategorideki en son gönderileri listelemek istiyorsunuz. bu kategorideki en son gönderiler. Sorguyu şu şekilde oluşturabilirsiniz: 'cat' ve 'post__not_in' parametreler:

Döngü için, yazı başlıklarının üzerinde yazı küçük resimleri olan üç veya dört sütun oluşturmanızı öneririm. Gönderinin hemen altında ve yorumlar bölümünden önce gerçekten güzel görünecek.

Örnek 3: Yorum Sayısına Göre Sıralanan En Popüler Gönderiler

WordPress’te yerleşik bir görüntüleme sonrası sayım sistemi yoktur ve bu işlevi sağlayan eklentiler web sitesini yavaşlatmalarıyla ünlüdür (çünkü her gönderi görüntülemesinde, eklentiler görüntüleme sayılarını kaydetmek için veritabanına tekrar tekrar yazarlar) . Ancak, hangi gönderilerin en popüler olduğunu belirlemenin başka bir türü daha var: yorumları saymak. Ve görüntüleme sayılarının aksine, yorum sayıları zaten veritabanındadır; WP_Query class, gönderileri yorum sayısına göre sıralamayı çok kolaylaştırır:

Bunun ne kadar kolay olduğunu görüyor musun? Şimdi bu sorguyu çalıştıran bir döngü ile özel bir sayfa şablonu oluşturduğunuzu hayal edin. En Çok Yorumlanan Gönderiler sayfa.

Örnek 4: Basit Bir Kaydırıcı Kurulumu

Kurumsal web siteleri, portföyler veya web dergileri oluşturmak için WordPress kullanırken, kaydırıcılar olmazsa olmaz bir endüstriyel standart haline geldi. Kaydırıcıların gerçekten hayranı değilim (bence kötü bir UX), ancak web bundan hoşlanıyor gibi görünüyor, bu yüzden müşterilerime onlar için web siteleri yaparken hayır diyemem. Kaydırıcılar istiyorlarsa, kullanarak basit bir sorgu kullanırım. WP_Query sınıf:

bu 'cat' argümanı, slayt gruplarını ayırabilmeniz ve birden çok sayfada birden çok kaydırıcı kullanabilmeniz için farklı kategorilerden slaytları almak için kullanılabilir. Web sitenizde yalnızca bir kaydırıcı kullanacaksanız, o satırı silebilirsiniz ve hazırsınız.

Örnek 5: Kenar Çubuğunda Rastgele Bir Alıntı

Edebiyat veya din ile ilgileniyorsanız, favori alıntılarınızdan bazılarını kenar çubuğuna koymak isteyebilirsiniz; alanı amaca uygun kullanırsanız, bu yer israfı olmaz. Bu nedenle, her sayfa görünümünde kenar çubuğunuzda rastgele bir alıntı listeleyecekseniz, gönderi türünü oluşturmak için aşağıdaki kod parçacığını kullanabilir ve kenar çubuğunuzda bir döngü oluşturmak için aşağıdaki sorguyu kullanabilirsiniz:

Kolay ve zarif bir çözüm.

Örnek #6: Ürünlerin Bir Fiyat Aralığında Listelenmesi

bu örneği buldum Scribu.netve söylemeliyim ki, bu en iyisi olabilir WP_Query Bu eğitimde hile. Diğerlerinden biraz daha teknik çünkü bu bağlamda WordPress destekli bir e-ticaret sitesine uygulanabilir.

Özel bir öğeden öğeleri listelemek istiyorsanız kullanacağınız kod parçacığı burada: Ürün yazı tipi ve sonuçları ile filtreleyin fiyat Özel Alanlar:

Silviu-Cristian Burca’ya büyük bir övgü!

Örnek 7: Gönderileri Gönderilerin İçine Gömmek İçin Bir Kısa Kod

İşte size eğlenceli bir alıştırma—ve biz de Kısa Kod API’sini kullanacağız! Bu örnekte, bir gönderiye gönderi gömebilecek bir kısa kod oluşturacağız. (Kısa kodu isimlendirmekten kendimi zor tuttum [postception].) Aşağıdaki kod parçacığında, gönderileri (veya herhangi bir özel gönderi türünü) gömmemize izin veren ve gönderinin tamamını mı yoksa yalnızca bir alıntıyı mı göstereceğimizi seçmemize izin veren bir kısa kod işlevi oluşturuyoruz:

Örnek 8: Güncel Planlanmış Gönderilerin Listesi (İsteğe Bağlı Alıntılarla)

İşte size bir fikir: Neden ziyaretçilerinize yaklaşan gönderilerinizin bazı gizli bakışlarını göstermiyorsunuz? Planlanmış gönderilerinizi başlıklardan sonra alıntılı veya alıntısız olarak listelemek için aşağıdaki işlevi kullanabilirsiniz:

Örnek 9: Bir Yıl Öncesinden Bugün Gönderi

Blogunuz bir yıldan eskiyse ve içeriğiniz zamansızsa (yani 2022 veya 2032’den bir kişi makaleyi alakalı bulabilir), Bir Yıl Öncesinden Bugün Gönderi bölümü, sayfa görüntülemelerinizi artırabilir. İşte bunu nasıl yapacağınız:

Geçen yıldan tek bir gönderi görüntüleyen bir döngü oluşturmak için bu sorguyu kullanın.

Örnek 10: Geçerli Sayfanın Alt Öğelerini Göster

Ya alt sayfaların başlıklarından başka bir şeyiniz yoksa koyacak bir şeyiniz yoksa? Hizmetler, Bizim isimizveya Portföyüm sayfa? Belki bir giriş paragrafı, ama haklısın, o sayfalar yer tutucu olmaya mahkum. Yine de, alt sayfaları oraya yerleştirmek iyi bir fikirdir – belki aşağıda kare küçük resimler ve başlıklar içeren bir ızgara. Bakalım böyle bir sayfa şablonu oluştururken hangi sorguyu kullanmalıyız:

Hakkında Hatırlanması Gereken Önemli Noktalar WP_Query

bu WP_Query class, WordPress web sitenizdeki gönderi verileri arasında geçiş yaparken size çok fazla güç verir. Çıktısını almak istediğiniz gönderilerin listesini daraltmanıza yardımcı olacak birçok seçenekle birlikte gelir. Ancak, aklınızda bulundurmanız gereken birkaç şey var.

Ana Sorgu ve İkincil Sorgular

WordPress’te iki tür sorgu vardır. Birincisi, ziyaret etmek istediğiniz URL’yi analiz ederek bir web sayfasını ziyaret ettiğinizde WordPress tarafından otomatik olarak çalıştırılır. Bu ana sorgudur. Ana sorgunun her zaman WordPress tarafından yürütülen ilk sorgu olmayabileceğini unutmayın.

İstenen URL’ye dayalı olarak WordPress tarafından oluşturulan sorgunun dışındaki tüm diğer sorgu türleri ikincil sorgulardır. İkincil sorgu örnekleri, önceki bölümlerde oluşturduğumuz sorgulardır.

Sorguyu Çalıştırdıktan Sonra Verileri Sıfırlama

her zaman aramalısın wp_reset_postdata() özel veya ikincil sorgunuzu çalıştırdıktan sonra işlev. Bu işlev, global değerini geri yükleyecektir. $post değişken, böylece ana gönderi hakkında bilgi içerir. Başka bir deyişle, şablon etiketlerinin bağlamını temel olarak ikincil sorgu döngüsünden ana sorgu döngüsüne geri yükler.

Şuna benzer başka bir işlev daha var wp_reset_postdata() aranan wp_reset_query(). Bu ikisi arasındaki fark, ikinci işlevin ana sorguyu orijinal ana sorguya sıfırlaması ve ardından arama yapmasıdır. wp_reset_postdata().

Sadece aramanız gerekecek wp_reset_query() eğer kullandıysanız query_posts() kodunuzda bir yerde çalışın. Ancak, aramaktan kaçınmalısınız. query_posts() Bu işlev ana sorgunuzu değiştireceğinden, temalar içinde veya eklentiler içinde işlev görür.

Ana Sorguyu Değiştirme

Ana sorguda değişiklik yapmak isterseniz ne olur? kullanarak bunu yapmalısınız. pre_get_posts eylem ve ardından kullanarak is_main_query() ana sorguyla çalıştığınızdan emin olmak için yöntem. İşte bir örnek:

Burada kullandığımız pre_get_posts Belirli kimliklere sahip gönderilerin arama sonuçlarında görünmesini engelleyecek bir işlevi yürütmek için kanca. Arama sonuçlarını belirli bir tarih, kategori vb. ile sınırlamak için yukarıdaki işlevlerin varyasyonlarını yazabilirsiniz.

Toplama

Umarım siz de bu örnekleri hazırlarken aldığım kadar keyif almışsınızdır. Hem eğlenceli olması hem de yaratıcılığınızı ateşlemesi için farklı örnekler vermeye özen gösterdim. Makaleyi beğendiyseniz, arkadaşlarınızla paylaşmayı unutmayın!

Bir sonraki bölümde, hakkında konuşacağız WP_User_Querykardeş sınıflarından biri WP_Query. Sonra görüşürüz!

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.

İlgili Makaleler

Bir cevap yazın

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

Başa dön tuşu