Çok fazla döngü çalıştırmak için bir sorgu nasıl kullanılır
Burada bir blogda WP_Query sınıfı ve birçok sorgu ve çok sayıda döngü yapmak için nasıl kullanılacağımı yazdım. WP_Query’nin büyük bir hayranıyım ve genellikle gelişmiş ve özel sorgular yapmak için istemci sitesinde ve kendi sitemde kullanıyorum. Bununla birlikte, aşırı iseniz zayıf yönleri vardır. Bir okuyucu, ilk yayınınızı farklı şekilde düzenlemek için döngülerin kullanımı hakkındaki son yayınım hakkında, gösterdiğim tekniklerin daha verimli hale getirilebileceğini tam olarak yorumladı. Bu yazıda, birkaç döngü oluşturmak için WP_Query’yi nasıl kullanacağınızı göstereceğim, ancak mümkün olduğunca verimli bir şekilde – ve bu sadece bir sorgu çalıştırarak, ancak birkaç döngü yapmak için kullanarak.
Bunu yapmanın yararı, veritabanına yalnızca bir kez basmanızdır. Daha sonra WP_Query tarafından alınan tüm verileri kullanabilirsiniz, böylece ihtiyacınız olan kadar döngü çalıştırabilirsiniz. Öyleyse dalış yapalım ve nasıl çalıştığını görelim. Bu yazıda ne yapacağımız, site ana sayfamın en üstünde, birkaç yazı türünün en son ve özel içeriğini görüntüleyen bir parça oluşturacağım. Özellikle, şunları gösterecektir:
Özel gönderi türünden son gönderim
Gönderi türünden iki yazı: her biri iki kategoriden biri.
Belirli sayfalar.
Bunu yapmanın açık yolu, her biri bir yayın döndüren dört (veya her iki yayın için yalnızca bir tane kullanabiliyorsanız üç tane) örnek wp_query yazmaktır. Ancak aksine, ihtiyacım olan tüm gönderileri almak için WP_Query’yi bir kez çalıştıracağım ve daha sonra gerekli yayınları görüntülemek için döngüyü dört kez çalıştıracağım. Bir döngü her çalıştırdığımda, $ sayım adlı bir değişken kullanacağım ve 1 değerini artıracağım, böylece bir sonraki döngüde kontrol edebilirim. Bu gönderiyi takip etmeniz gereken şeylere ihtiyacınız var: birkaç şeye ihtiyacınız var:
WordPress Geliştirme Kurulumu
Kod editörü
Sıra hazırlamak yapılacak ilk şey sorguyu çalıştırmaktır. Bu yazıyı ana sayfa, front-page.php için tema şablon dosyama koydum. Ancak temanızda birkaç döngü çalıştırmak istediğiniz herhangi bir yere koyabilirsiniz. Not: Üçüncü taraf bir temayla çalışıyorsanız, tüm bunları üçüncü bir tarafın temasına değil, çocuğun temasına koyun. Çocuk temasını nasıl ayarlayacağınızı bilmiyorsanız, kılavuzumuza bakın. Bu benim sorum:
Çekirdek 9372B5F9A86936AEBE4D03B530C3D89 içerir
Sorgu, üç tür gönderimden bir gönderi alacaktır: yayınlar, sayfalar ve özel yayın tipi kitaplarım.
Şimdi veritabanından bir gönderi aldık, bunu görüntülemek için kodu hazırlamaya başlamamız gerekiyor. Çıktıyı sorgunuzdan sonra ve kıvırcık parantezlere hazırlayın:
Çekirdek 9372B5F9A86936AEBE4D03B530C3D89 içerir
Bu, tüm yayınlarımızı içerecek bölüm öğeleri oluşturur. Aynı zamanda $ sayım adı verilen bir değişkeni tanımlar ve sıfıra ayarlar. Her turdan sonra tek tek artıracağız. İlk döngünün ilk döngüsünü çalıştırarak özel yazı türümü göstereceğim. Döngüde, yazı türünü kontrol edecek koşullu bir etiket ekleyeceğiz. Ayrıca, $ sayı değerinin 0 olduğunu ve çalıştıktan sonra, döngüyü tekrar çalıştırmayı durdurmak için değer 1 artacaktır. Kodu takip eder:
Çekirdek 9372B5F9A86936AEBE4D03B530C3D89 içerir
Bu, ne tür bir gönderi türünü tanımlamak için get_post_type () işlevini içerdiğini ve yalnızca kitap ve sayım değeri 0 ise bir döngü çalıştırdığını unutmayın. Sonunda $ sayı ++, $ sayı değişken değerini 1 oranında artıracaktır. Bu döngünün son öğesi rewind_posts (). Bunu bırakmayın, yoksa bu ‘kitap’ yazısından sonra yayınlanan diğer yazı türlerinizin her gönderisini kaçıracakları için döngünüzün düzgün gitmediğini göreceksiniz. İkinci turunuz için şimdi ikinci turu çalıştırın. Bu birinciye benzer: $ sayısı ve yazı türünün değerini kontrol etmek, aynı zamanda kategoriyi de inceler.
Çekirdek 9372B5F9A86936AEBE4D03B530C3D89 içerir
Bu döngüyü çalıştırmadan önce $ sayı değerinin 1 olduğunu kontrol ettiğimizi unutmayın, bu da ilk döngü bir ‘kitap’ yazısı için çalıştırılmışsa gerçekleşecektir. Üçüncü döngünün üçüncü döngüsünü çalıştırmak ikinciye çok benzer: ‘Haber’ kategorisindeki yayınları kontrol etmek, ancak ‘WordPress’ kategorisinde değil, çünkü bu kategorideki en son yayınları gösterdik. Çek eklemezsem, aynı gönderi iki kez görüntülenebilir. Ana çekirdek 93772b5f9a86936aebe4d03b530c3d89
Dördüncü dördüncü döngüyü çalıştırmak ve nihayet bir sayfa üretti: Benim için bu benim bülten kayıt sayfam.
Aşağıdaki kod:
Çekirdek 9372B5F9A86936AEBE4D03B530C3D89 içerir
Gönderi türünü kontrol etmenin yanı sıra, Salyangozları Post_Name değerleri ile de kontrol ettiğimi unutmayın. Dördüncü döngüden sonra, bölümün öğelerini kapatmamız ve bitirmemiz gerekir. Döngü Dolgusu – Şablon bölümünüzü kullanarak her döngüde bu çizgiye sahip olduğumu fark etmiş olabilir:
Çekirdek 9372B5F9A86936AEBE4D03B530C3D89 içerir
Bu, döngü içeriğimle birlikte verilen dosyaları çağırır. Bu dosyayı kullanmak, kodu sadece dört kez değil, bir kez yazmam gerektiği anlamına gelir. Çağrı döngüsü için get_template_part () işlevini kullanmaya daha alışık olabilirsiniz. Kullanmamın nedeni (Locate_template ()) bunun yerine, alternatif değişkeni bu işlevi kullanarak şablon bölümüne devam etmek mümkündür, ancak get_template_part () ile değil. Yani, kullandığım işlevi kullanmalısınız.
Bu şablon bölümümün içeriği:
Çekirdek 9372B5F9A86936AEBE4D03B530C3D89 içerir
Kodun devam eden yönlerinden bazılarına bakalım:
Her döngüde yazının üstünde görünecek başlığı belirlemek için $ Title adlı bir değişken kullanıyorum. Bu, gönderinin kendisi ile değil, yazı kategorisi veya türü ile ilgilidir. Dinamik olarak almaya çalışmak yerine, değeri yalnızca $ sayısının değerine bağlı olarak değişkene ayarladım. Her gönderi için. $ Başlık değeri H3 öğesinde görüntülenir, ardından üstün çizimler, başlıklar ve alıntılar izlenir.
Hem üstün görüntüler hem de başlıklar gönderi veya sayfaya bağlantı görevi görür.
Döngü içeriğiniz için kendi şablon bölümünüzü oluşturmanız gerekir. İstediğiniz gibi çalışacak şekilde ayarlayın.
Ana sayfamdaki yayınlarımın bir listesi aşağıdadır:
Görünüyorlar ama o kadar iyi görünmüyorlar. Bazı stiller ekleyelim. Gönderinizi düzenleme Her döngüdeki makalenin öğelerine birkaç sınıf ekleyelim, böylece ayarlayabiliriz. Makaleyi dahil dosyalarınızdaki makaleyi şuna benzer şekilde düzenleyin:
Çekirdek 9372B5F9A86936AEBE4D03B530C3D89 içerir
Şimdi, tema stili sayfanıza bazı stiller ekleyin:
Çekirdek 9372B5F9A86936AEBE4D03B530C3D89 içerir
Bence basit bir posta listesinden çok daha iyi göründüğünü ve bloglardan gelen yayınların bir listesinden daha güçlü olduğunu kabul edeceksiniz. Bu bana daha fazla esneklik sağlıyor.
Bazı döngüler için bir sorgu çalıştırmak, veritabanlarından bir dizi avantaja sahip olmak için çok fazla döngü çalıştırmak için bu tekniği veya kendi sürümünüzü kullanarak kodunuza ve sitenize fayda sağlar:
Bu, kodlanacak ve güncellenmeye devam etmek için yalnızca bir sorgunuz olduğu anlamına gelir ve kodlamanızı daha verimli hale getirir.Bu, şablon bölümünü kullanarak daha verimli bir şekilde yapılır. Veritabanını sadece bir kez sorarak, yavaşlıktan kaçınır ve sayfanın yükleme süresini hızlandırırsınız.
Hızlı içeren bir sayfaya sahip olmak, arama motorunuzun kullanıcı deneyimini ve sıralamasını geliştirecektir. Ne sevilmedi?Bu tekniği bugün gönderiniz, kategorileriniz ve özel yayın türlerinizle deneyin ve neler yapabileceğinizi görün.
Bu tekniği sitenizde nasıl kullanabilirsiniz?Bize yorumlarda söyleyin!
Etiket:
CSS
özelleştirme
PHP