En çok ihtiyaç duyduğunuzda güvenilir WordPress eğitimleri.
WordPress Başlangıç Rehberi
WPB Kupası
25 Milyon+
Eklentilerimizi kullanan web siteleri
16+
Yıllık WordPress deneyimi
3000+
Uzmanlardan WordPress eğitimleri

WordPress'te Birden Fazla Döngüde Tekrarlanan Gönderi Görüntülenmesini Önleme Yolları

Farklı gönderi kümelerini görüntülemek için birden fazla WordPress sorgusu kullanıyorsanız, yinelenen içerikle karşılaşabilirsiniz. Bunun nedeni, bazı gönderilerin birden fazla döngüyle eşleşebilmesi ve iki kez görünmesidir.

WordPress'te birden fazla döngüde yinelenen gönderileri önlemek için yerleşik bir seçenek bulunmamaktadır. Ancak, 15 yılı aşkın WordPress sitesi yönetme deneyimimizle bu sorunu nasıl çözeceğimizi öğrendik. Bu nedenle, sitenize ekleyebileceğiniz ve farklı döngülerde gösterilen yinelenen gönderileri önleyebileceğiniz özel bir kod parçacığı oluşturduk.

Bu makalede, WordPress'te birden fazla döngüde yinelenen gönderi görüntülenmesini kolayca nasıl önleyeceğinizi göstereceğiz.

Birden fazla WordPress döngüsüyle çalışırken yinelenen gönderilerden kaçınma

WordPress'te Birden Fazla Döngüde Yinelenen Gönderiler Nasıl Görünür

Özel bir WordPress teması veya özel bir sayfa şablonu oluştururken, bazen birden fazla WordPress döngüsü kullanmanız gerekebilir.

Örneğin, sitenizin en popüler gönderilerinin yanında son gönderilerinizi göstermek isteyebilirsiniz. Her kategorideki tüm gönderileri göstererek, okuyucuların ilginç içerikler bulmasına da yardımcı olabilirsiniz.

Bu örneklerin tümünde, tek bir gönderi birden fazla döngünün kriterleriyle eşleşebilir. Bu olduğunda, WordPress yinelenen içerik görüntüleyecektir.

Bu yinelenen içerik, sitenizin dağınık ve profesyonel olmayan görünmesine neden olabilir. Ayrıca değer katmadan ekranda yer kaplar.

Döngü başına dinamik olarak gönderi oluşturduğunuz için, birden fazla döngüde yinelenen bir gönderinin görünüp görünmeyeceğini manuel olarak tahmin edemezsiniz.

Bunu göz önünde bulundurarak, WordPress'te birden fazla döngüyle uğraşırken yinelenen gönderilerden kaçınmanın kolay bir yoluna bakalım.

Birden Fazla WordPress Döngüsünde Yinelenen Gönderilerden Kaçınma

Bu kılavuzda, yinelenen gönderi hatasına neden olan örnek WordPress kodunu gösterecek ve ardından sorunu çözen bir kod parçacığı paylaşacağız.

Bir WordPress alt teması veya özel şablon oluştururken, kodunuz tamamen farklı olabilir. Ancak, kod parçacığımızı bir başlangıç noktası olarak kullanabilir ve ardından kendi web sitenize uyacak şekilde değiştirebilirsiniz.

İlk olarak, yinelenen bir gönderi sorunu oluşturalım. Aşağıdaki örnek kodda, yinelenen gönderilerden kaçınmadan 'travel' kategorisindeki tüm gönderileri ve 'news' kategorisindeki tüm gönderileri görüntülüyoruz:

/******  The First Query *******/
 
$first_query = new WP_Query(  array (
'category_name' => 'news',
'posts_per_page'  =>  3 
));
  
// The Loop
if ( $first_query->have_posts() ) {
    echo '<ul>';
    while ( $first_query->have_posts() ) {
        $first_query->the_post();
 
//display posts
echo '<li>';
echo the_post_thumbnail( array(50, 50) );
echo get_the_title(); 
echo '</li>';
    }
    echo '</ul>';
} else {
    // no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
 
 
/******  The Second Query *******/
$second_query = new WP_Query(  array (
'category_name' => 'travel',
'posts_per_page'  =>  3
 
) );
 
// The Loop
if ( $second_query->have_posts() ) {
 
echo '<ul>';
while ( $second_query->have_posts() ) {
 
$second_query->the_post();
echo '<li>'; 
echo the_post_thumbnail( array(50, 50) );
echo get_the_title(); 
echo '</li>';
    }
echo '</ul>';
} else {
    // no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
?>

Gördüğünüz gibi, bu kod sorgusunda yinelenen gönderileri kontrol etmiyor.

Bir gönderi hem 'news' hem de 'travel' kategorisine aitse, aşağıdaki resimde görebileceğiniz gibi iki kez görünecektir.

WordPress'te birden fazla döngüyle yinelenen gönderi görüntülemeden nasıl kaçınılır

Bu sorunu çözelim.

WordPress blogunuzda yinelenen gönderilerden kaçınmak için, ilk döngüde görüntülenen tüm gönderiler hakkındaki verileri geçici olarak saklamanız gerekecektir.

Bu bilgilere sahip olduktan sonra, ikinci döngüde yinelenen gönderilerin görünmesini durdurmak için ikinci sorguyu değiştirebilirsiniz:

/******  The First Query *******/
 
$first_query = new WP_Query(  array (
'category_name' => 'news',
'posts_per_page'  =>  3
) );
  
// The Loop
if ( $first_query->have_posts() ) {
    echo '<ul>';
    while ( $first_query->have_posts() ) {
        $first_query->the_post();
         
// Store Post IDs in an Array to reuse later
$exclude[] = $post->ID; 
 
//display posts
echo '<li>';
echo the_post_thumbnail( array(50, 50) );
echo get_the_title(); 
echo '</li>';
    }
    echo '</ul>';
} else {
    // no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
 
 
/******  The Second Query *******/
$second_query = new WP_Query(  array (
'category_name' => 'travel',
'post__not_in'  =>  $exclude, // Tell WordPress to Exclude these posts
'posts_per_page'  =>  3
 
) );
 
// The Loop
if ( $second_query->have_posts() ) {
 
echo '<ul>';
while ( $second_query->have_posts() ) {
 
$second_query->the_post();
echo '<li>'; 
echo the_post_thumbnail( array(50, 50) );
echo get_the_title(); 
echo '</li>';
    }
echo '</ul>';
} else {
    // no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
?>

Yukarıdaki kodda, Gönderi Kimliklerini $exclude adlı bir dizide saklıyoruz. Ardından, ikinci sorguya post__not_in argümanını ekliyoruz, bu da ilk döngüde görüntülenen gönderileri hariç tutacaktır.

Sitenize kod parçacıkları ekleme konusunda aşina değilseniz, daha kolay bir yol WPCode kullanmaktır. Sitenizi bozma riski olmadan özel kod eklemenize yardımcı olan WordPress için en iyi kod parçacığı eklentisidir.

Öncelikle, WPCode eklentisini yüklemeniz ve etkinleştirmeniz gerekecektir. Yardıma ihtiyacınız olursa, lütfen WordPress eklentisinin nasıl kurulacağına ilişkin kılavuzumuza bakın.

Etkinleştirdikten sonra, WordPress kontrol panelinden Kod Parçacıkları + Parçacık Ekle'ye gidebilir ve ardından 'Özel Kodunuzu Ekle (Yeni Parçacık)' seçeneğine tıklayabilirsiniz.

WPCode'da yeni bir özel kod parçacığı ekleyin

Bundan sonra, özel kodu Kod Önizleme alanına yapıştırabilir ve en üste bir başlık girebilirsiniz.

Ayrıca açılır menüye tıklayarak 'Kod Türü'nü PHP Parçacığı olarak seçmeniz gerekecektir.

Özel kod parçacığı girin

Kodu girdikten sonra, Ekleme bölümünü seçmek için aşağı kaydırmanız yeterlidir.

Burada, eklentinin kodu sitenize otomatik olarak eklemesine izin vermek için varsayılan 'Otomatik Ekle' ayarını kullanabilirsiniz.

WPCode'da kod parçacığı ekleme yöntemleri

İşiniz bittiğinde, parçacığı kaydedip etkinleştirmeniz yeterlidir.

WordPress'e özel kodu nasıl ekleyeceğinizle ilgili kılavuzumuza bakın.

Şimdi WordPress web sitenizi ziyaret ederseniz, yinelenen gönderilerin kaybolduğunu göreceksiniz.

WordPress'te birden fazla gönderi kullanırken yinelenen gönderileri kaldırma

Umarım bu makale, WordPress'te birden çok döngüyle yinelenen gönderi görüntüsünü nasıl önleyeceğinizi öğrenmenize yardımcı olmuştur. Ayrıca WordPress döngüsünde herhangi bir sayıda gönderiyi devre dışı bırakma ve WordPress'te yapışkan gönderiler oluşturma kılavuzlarımıza da bakmak isteyebilirsiniz.

Bu makaleyi beğendiyseniz, lütfen WordPress video eğitimleri için YouTube Kanalımıza abone olun. Bizi ayrıca Twitter ve Facebook'ta da bulabilirsiniz.

Açıklama: İçeriğimiz okuyucu desteklidir. Bu, bazı bağlantılarımıza tıklamanız durumunda komisyon kazanabileceğimiz anlamına gelir. WPBeginner'ın nasıl finanse edildiğini, neden önemli olduğunu ve bize nasıl destek olabileceğinizi görün. İşte editöryal sürecimiz.

Nihai WordPress Araç Seti

Araç Kitimize ÜCRETSİZ erişim kazanın - her profesyonelin sahip olması gereken WordPress ile ilgili ürün ve kaynaklardan oluşan bir koleksiyon!

Okuyucu Etkileşimleri

15 CommentsLeave a Reply

  1. Birisi bana bunu nasıl yapacağımı söyleyebilir mi? Bu konuda gerçekten yeniyim ve yardıma ihtiyacım var, lütfen gönderi kimliği ile net bir örnek verin, nasıl saklayacağım? Diyelim ki benimki 1527.

  2. Belirli bir kategorinin döngülerinden önce 2 döngü çalıştırıyorum ve bu döngülerde yinelenenleri önlemek istiyorum. Peki ilk iki döngüden kimlikleri diziye nasıl saklarım?

  3. Çok teşekkür ederim :))) Bana çok yardımcı oluyor!
    Günümü kurtardın <3

  4. AWESOME!! Thank you so much! And thank you SERGEYVLASOV for that last comment– Worked like a charm for my multiple loops. Hooray!! :)

  5. Bu yöntem, bir dosyada bulunan 2 döngünün her ikisi de olana kadar gayet iyi çalışıyor.
    ancak ilk döngüyü header.php'ye ve diğerini index.php'ye koyduğumda,
    in_array($post->ID, $do_nit_duplicate) null döndürüyor.
    Ne yapabilirim?

  6. Herkese iyi günler,

    sitemdeki gönderilerin çift görüntülenmesi sorunum için işe yarar mı? gönderilerin altında bir kopyasını ve 1, 2, -> düğmesini gösteriyor...

    site şu şekilde: Eklentileri devre dışı bırakıp tekrar etkinleştirdim, çıldırmak üzereyim.

  7. yardımcı olabilir misin?
    Sitemde yinelenen kategoriyle ilgili bir sorunum var

    lütfen
    #teşekkürler

  8. Varsayılan döngü üzerinde yineleme yapmadan önce wp_reset_postdata(); kullanmalı mıyız?

  9. @sergeyvlasov – Teşekkürler, benim için işe yaradı

    ama değiştirdim

    $do_nit_duplicate yerine $do_not_duplicate

    ;)

  10. Bu algoritma kusurlu sanırım. En fazla 1 (bir) tekrarlamayı tespit edebilir. Yani sihirli satır şöyle görünürdü:
     
    $do_not_duplicate[] = $post->ID
     
    ve sonra şöyle kullanılır:
     
    if(in_array($post->ID, $do_nit_duplicate)) continue;

Cevap Bırakın

Yorum bırakmayı seçtiğiniz için teşekkürler. Lütfen tüm yorumların yorum politikamıza göre denetlendiğini ve e-posta adresinizin YAYINLANMAYACAĞINI unutmayın. Lütfen isim alanında anahtar kelime KULLANMAYIN. Kişisel ve anlamlı bir sohbet edelim.