2010-07-22 32 views
7

içinde mevcut gönderi sayımını al Döngü içinde bulunduğumda, geçerli gönderi sayısını almak istiyorum. Örneğin, her 3 yayından sonra bir reklam eklemek istiyorum.WordPress Döngü: Döngü

Yani, döngü sayısının değerini nasıl alabilirim?

cevap

19

Geçerli posta iterasyonunu almak için WP_Query nesne örneğinin current_post nesnesini kullanabilirsiniz; Bir fonksiyon içerisinde bu kullanıyorsanız

while (have_posts()) : the_post(); 

    // your normal post code 

    if (($wp_query->current_post + 1) % 3 === 0) { 

     // your ad code here 

    } 

endwhile; 

Not, sen $wp_query globalize gerekir.

+0

Bu yöntemi denedim. Reklam her 3 yayından önce ve sonra ekleniyor! Reklamı yalnızca 3 yayından sonra eklemek için nasıl alabilirim? –

+1

@KartikRao Gelecekte referans olması için, bu cevap hiç bu kadar az kusurlu. Dizinler 0'dan başlayacağından, ilk koşullu koşul çalıştırıldığında (while döngüsünün ilk yinelemesi), aslında true olarak dönecektir çünkü 0 modülü herhangi bir gerçek sayı her zaman 0'dır. Reklam kodu ilk önce yanlış bir şekilde eklenmiştir. posta, dördüncü gönderi, yedinci posta - vb. Güncellenen kod şunları okumalıdır: '($ wp_query-> current_post + 1)% 3'. –

+1

@AdamMcArthur dördüncü ve yedinci mesajlardan önce reklam kodunu girerek * * doğru * yanıtı verildiğinde, her 3 mesajdan sonra * eklenmesi gerekir *. İlk gönderiden önce bir reklamı yerleştirmenin spesifikasyonlarla eşleşmediğinden haklısınız, ancak önerilen düzeltmeniz - istediğiniz gibi 3./5./9. yayınlar yerine 2./5./8. yayınlardan sonra reklam yerleştirecek olan - ya. –

0

Neden bir değişkeni artırmıyorsunuz, sonra gerektiğinde reklamlarınızı görüntülüyorsunuz?

while(LOOP) 
    echo $i%3==0 ? $ad : ''; 
    $i++ 
0

emin değil neden, ama önerilen yöntemler benim için yürümedi, ben başvurmak zorunda bana sorarsanız globaller ile oynamaktan daha

$loop_counter = 1; 
while($query->have_posts()) 
{ 
    //Do your thing $query->the_post(); etc 

    $loop_counter++; 
} 

Daha güvenli aşağıdaki.