İlk gönderinizi farklı şekilde düzenlemek için bir WordPress döngüsü nasıl kullanılır

WordPress döngüsünü düzenleyebilen WordPress site tasarımınız ve içeriğiniz üzerinde çok fazla kontrol sağlar. Bazen standart döngüleri düzenleyerek ve bazen gerçekten yeni bir döngü oluşturmak için wp_query kullanarak özel döngüler yaparım. Ama bazı durumlarda daha ileri gitmek istiyorum. İlk gönderiyi bir sonraki gönderiden farklı şekilde döngüde görüntülemek istiyorum. Bu, özel bir stil ekleyerek olabilir veya farklı içerik görüntülemek istediğim için olabilir. Örneğin, ilk gönderi için gönderme içeriği görüntülemek isteyebilirim, ancak bir sonraki yazı için yalnızca bir teklif. Veya farklı boyutlu bir özellik görüntüsü kullanmak veya CSS sınıfındaki farkı ilk gönderiye uygulamak isteyebilirim.
Bunu yapmak en son yayınlarınızı vurgulayabilir, dikkat çekebilir ve ziyaretçileri okumaya veya tıklamaya teşvik edebilir. Ayrıca sitenizin düzenini artırabilir, her şeyi kırabilir ve daha çeşitli tasarımlar oluşturabilir. Bu yazıda, bunu yapmak için wp_query sınıfını nasıl kullanacağınızı göstereceğim. WP_Query kullanarak tüm yayınlarınız için nasıl özel bir sorgu ayarlayacağınızı göstereceğim ve sonra size yalnızca ilk gönderi için geçerli olan ikinci bir sorguyu nasıl oluşturacağınızı göstereceğim. Başarılı bir örnekte, iki ayrı quent çalıştırmak için wp_query kullanarak bunu özel bir sayfa şablonunda nasıl yapacağınızı göstereceğim. Ve sonra size bu tekniğin standart bir döngüye nasıl uygulanacağınızı, standart arşiv şablonlarını düzenleyeceğinizi ve standart döngüleri değiştirmek için pre_get_posts kullanacağımı göstereceğim.
Not: WP_Query ve olağanüstü gücüne aşina değilseniz, WP_Query’yi fethetmek için derinlemesine kılavuzumuza bakın. Bu gönderiyi takip etmeniz gereken şeylere ihtiyacınız var, birkaç şeye ihtiyacınız var: WordPress Geliştirme Kurulumu – Başarılı olana kadar bunu doğrudan sitenizde denemeyin!
Kod editörü
Başlangıç: Kişisel Site Sorgusu Yapma ‘Kitap’ sayfam için özel bir sayfa şablonu var. Bu sayfa ‘Kitap’ sayfasına eklediğim içeriği görüntüler ve ardından tüm kitaplarımı görüntülemek için bir döngü çalıştırır. Bu özel bir yazı türü kullanılarak yapılır.
Döngünüz çok farklı olabilir – sıradan yayınlar kullanabilirsiniz, dosya şablonu dosyasında, özel yayınlar için şablon dosyasında veya yapmak istemediğiniz herhangi bir şey olabilir. Bu nedenle, bu tekniği kullanmak için özel bir sayfa şablonu ile çalışmak zorunda değilsiniz. Yalnızca döngünün kendisine odaklanıyorsanız, bu tekniğin nasıl çalıştığını gösterir ve bunu kendi sitenize uygulayabilirsiniz. Bu, tüm kitaplarımı 2x 2x ızgarada yayınlayan bir döngü içeren sayfam:
Her bir kitapımı görüntüleyen 2×2 kutu oluşturmak için temamda birkaç nesne yönelimli CSS kullandım. Döngü içinde başlıklar, alıntılar ve üstün görüntüler var.

Bu, tüm gönderilerim için çalışan döngü:
Core 30718a0ddb43635c2879db6c1b6f50fd içerir
Döngimin yalnızca bir argümanı olduğunu göreceksiniz: Post Tür. Böylece, en sonundaki yazı türünün tüm yayınlarını gösterir. Ancak yapmak istediğimiz ilk gönderiyi farklı şekilde sergilemek. Hadi bunu yapalım. İlk gönderiyi farklı şekilde görüntülemek için ayrı bir döngü yapın, yalnızca yazıyı çalıştıran ayrı bir döngü oluşturmamız gerekir. Bunu yapmak için iki argümana ihtiyacınız var: biri gönderi türü ve diğeri yayın sayısı için, yani Posts_per_Page argümanı. 1 olarak ayarlayın. Şablon dosyanızda iki döngü olması için orijinal döngünüzü çoğaltarak başlayın, her ikisi de WP_QUERY kullanın. Şimdi ilk argümanı aşağıdaki gibi okunacak şekilde düzenleyin:
Core 30718a0ddb43635c2879db6c1b6f50fd içerir
Bu sadece en son gönderileri alacaktır. Ancak ilk döngüde bir şeyi değiştirmek istemediğiniz sürece bunu yapmanın bir anlamı yok. Alıntı ve içeriği görüntülemek istiyorum. Ayrıca, içerikte resim ve mükemmel alıntılar görünmesi için düzene bazı stiller eklemek istiyorum. Bu, sadece ilk gönderi için yazının kendisini görüntüleyen döngü bölümünün yeni sürümüdür:
Core 30718a0ddb43635c2879db6c1b6f50fd içerir
Orada içerik için ek bir kod olduğunu ve düzeni düzenlemek için birkaç ek div öğesi eklediğimi göreceksiniz – yine bu zaten temamdaki stili kullanıyor. Bu sayfamdaki ilk gönderi:
Güzel görünüyor. Kitapları keşfetmek için bağlantıları da sildiğimi görmüş olabilirsiniz (çünkü tüm içerik ana kitap sayfasında olduğu için) ve bunun yerine bir kitap satın almak için bir düğme var. yayın ama bir sorun var.
Aşağıdaki ekran görüntüleri size ilk gönderiyi ve daha sonra gönderiyi gösterir:

İlk gönderi şu anda çoğaltılıyor. Başlangıçta döngü tarafından alındı ​​ve aynı zamanda sadece ilk yazı için yeni bir döngü tarafından alındı. Bu, ikinci döngü ofset argümanına ek argümanlar eklenerek düzeltilir. Bu, WordPress’e çıktıya yayın almadan önce bir dizi yayın geçirmesini söyler. Turun ilk turunda bir gönderi yaptığımız için bir yazı ile telafi etmemiz gerekiyor. Not: Bu tekniği daha önce kullandıysanız, ilk döngünüz için Posts_per_Page bağımsız değişkeni ve ikinci döngünüz için ofset argümanı aynı olmalıdır, her zaman 1 olmayabilir.

İkinci döngünüzde, argümanı şöyle değiştirecek şekilde değiştirin:
Core 30718a0ddb43635c2879db6c1b6f50fd içerir

Şimdi sayfanızı yenilediğinizde, ilk yayının çoğaltılmadığını göreceksiniz:
Daha iyi! Şimdi bittin. Biri en son yayınlar için ek içerik görüntüleyen iki döngüye sahip özel bir sayfa oluşturdunuz. Bu tekniği standart bir döngüye uygulayın, ancak sayfanız standart bir döngü çalıştırıyorsa? Öyleyse, sayfayı çalıştıran şablon dosyasını düzenleyerek wp_query kullanarak yalnızca bir ek kuyruk ekleyebilirsiniz. İki yeni sorgu yazmanıza gerek yok.
Bu teknik için iki adım vardır:
Şablon dosyanıza ek sorgular ekleyin, wp_query kullanın. Tema işlevi dosyanızda, ilk gönderiyi geçmek için bu tür arşivdeki standart döngüyü değiştirmek için pre_get_posts kullanın.

İlk ekstra isteği ekleyin, düzenlemek istediğiniz şablon dosyasını açın. Bu herhangi bir dosya şablonu dosyası olacaktır. Benim durumumda, özel yayın türümü görüntülemek için standart bir şablon dosyası kullanırsam, dosyaya arşiv-rmcc_book.php olarak adlandırılır. Ana döngüden önce WP_Query kullanarak ek döngüler ekleyin. Bunu, ana döngü içeriğini kopyalayarak ve düzenleyerek yukarıdaki yönteme benzer şekilde yapacaksınız, ancak WP_Query tarafından desteklenen bir sorguya koyacaksınız. Bu tür bir yazı için bir arşiv şablonunda olsanız bile hala bir post_type argümanına ihtiyacınız olduğunu unutmayın.
Şablon dosyanızı kaydedin ve ilk yayınınız iş örneğimde olduğu gibi iki kez görünecektir. Ana sorgudaki ilk yayını kaçırın Dosyanızdaki ana sorguların bağımsız değişkenini doğrudan düzenleyemezsiniz. Bunun yerine, bunu yapmak için pre_get_posts kancasını kullanmanız gerekir. Function.php dosyasını açın (veya sahip değilseniz yapın) ve şöyle bir şey ekleyin:
Core 30718a0ddb43635c2879db6c1b6f50fd içerir
Burada kullanılan üç koşullu etiket olduğunu göreceksiniz: biri yönetici ekranında olmamamızı kontrol etmek için, diğeri çalıştırılan ana sorgu olup olmadığını kontrol etmek için ve bunun için arşiv sayfasında olup olmadığımızı kontrol etmek için üçüncüsü Gönderi türü. Gönderi türünüz (veya kategori veya herhangi bir şey) için kullandığınız koşullu etiket, Codex WordPress’te bulunabilir. İşlev dosyanızı kaydedin ve ilk yayınınızın özel döngünüzü kullanarak çıktı olduğunu ve ardından bir sonraki gönderinin standart döngü üzerinden çıktığını göreceksiniz. Not: Bu yöntem bazen sayfalandırmaya zarar verebilir. Bu size gelirse, bu kılavuzu takip edin. WP_Query, bu tekniği kullanarak en son yayınlarınızı vurgulamanıza olanak tanır, en son yayınlarınız için ek içerik görüntülemek veya farklı ayarlamak için WP_QUY sınıfını kullanabilirsiniz. Örneğimden göreceğiniz gibi, son kitabımı diğerlerinden öne çıkarmak için kullandım. Bunu, WP_Query sınıfını kullanarak yaptığınız döngüye, tema şablonu dosyanızdaki standart döngüye uygulayabilirsiniz – herhangi biri kullanırsınız. Bunu yapmayı bitirdikten sonra, son yayınınız öne çıkacak ve okuyucunuzun dikkatini çekecektir. Bu tekniği kendi web sitenizde nasıl kullanacaksınız? Düşüncelerinizi aşağıdaki yorumlarda paylaşın.

admin

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir