Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPB Cup
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Wie man die Anzeige doppelter Beiträge mit mehreren Schleifen in WordPress vermeidet

Hinweis der Redaktion: Wir erhalten eine Provision für Partnerlinks auf WPBeginner. Die Provisionen haben keinen Einfluss auf die Meinung oder Bewertung unserer Redakteure. Erfahre mehr über Redaktioneller Prozess.

Versuchen Sie, die Anzeige doppelter Beiträge mit mehreren Schleifen in WordPress zu beheben?

Wenn Sie mehrere WordPress-Abfragen verwenden, um verschiedene Sätze von Beiträgen anzuzeigen, können Sie auf doppelte Inhalte stoßen. Das liegt daran, dass einige Beiträge möglicherweise mehr als einer Schleife entsprechen und doppelt erscheinen.

In diesem Artikel zeigen wir Ihnen, wie Sie die Anzeige von doppelten Beiträgen mit mehreren Schleifen in WordPress leicht vermeiden können.

Avoding duplicate posts when working with multiple WordPress loops

Wie doppelte Beiträge in mehreren WordPress-Schleifen erscheinen

Wenn Sie ein benutzerdefiniertes WordPress-Theme oder eine benutzerdefinierte Seitenvorlage erstellen, müssen Sie manchmal mehrere WordPress-Schleifen verwenden.

Sie können zum Beispiel Ihre neuesten Beiträge neben den beliebtesten Beiträgen Ihrer Website anzeigen. Indem Sie alle Beiträge in jeder Kategorie anzeigen, können Sie den Lesern auch helfen, interessante Inhalte zu finden.

In all diesen Beispielen kann ein einzelner Beitrag die Kriterien für mehrere Schleifen erfüllen. Wenn dies geschieht, zeigt WordPress doppelte Inhalte an.

Diese doppelten Inhalte können Ihre Website unordentlich und unprofessionell aussehen lassen. Außerdem beanspruchen sie Platz auf dem Bildschirm, ohne einen Mehrwert zu bieten.

Da Sie Beiträge für jede Schleife dynamisch generieren, können Sie nicht manuell vorhersagen, ob ein doppelter Beitrag in mehreren Schleifen erscheinen wird.

Schauen wir uns also eine einfache Möglichkeit an, um doppelte Beiträge zu vermeiden, wenn man mit mehreren Schleifen in WordPress arbeitet.

Vermeidung von doppelten Beiträgen in mehreren WordPress-Schleifen

In diesem Leitfaden zeigen wir Ihnen ein Beispiel für WordPress-Code, der den Fehler „doppelter Beitrag“ verursacht, und teilen dann einen Codeausschnitt, der das Problem behebt.

Wenn Sie ein WordPress Child-Theme oder eine benutzerdefinierte Vorlage erstellen, kann Ihr Code völlig anders aussehen. Sie können jedoch unser Code-Snippet als Ausgangspunkt verwenden und es dann an Ihre eigene Website anpassen.

Lassen Sie uns zunächst ein Problem mit doppelten Beiträgen erstellen. Im folgenden Beispielcode werden alle Beiträge in der Kategorie „Reisen“ und alle Beiträge in der Kategorie „Nachrichten“ angezeigt, ohne doppelte Beiträge zu vermeiden:

/******  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();
?>

Wie Sie sehen können, prüft dieser Code in keiner der Abfragen auf doppelte Beiträge.

Wenn ein Beitrag sowohl zur Kategorie „Nachrichten“ als auch zur Kategorie „Reisen“ gehört, wird er zweimal angezeigt, wie Sie auf dem folgenden Bild sehen können.

How to avoid duplicate post display with multiple loops in WordPress

Lassen Sie uns dieses Problem beheben.

Um doppelte Beiträge in Ihrem WordPress-Blog zu vermeiden, müssen Sie die Daten aller Beiträge, die in der ersten Schleife angezeigt werden, vorübergehend speichern.

Sobald Sie diese Informationen haben, können Sie die zweite Abfrage ändern, um zu verhindern, dass doppelte Beiträge in der zweiten Schleife erscheinen:

/******  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();
?>

Im obigen Code speichern wir die Post-IDs in einem Array namens $exclude. Danach fügen wir das Argument post__not_in zur zweiten Abfrage hinzu, die Beiträge ausschließt, die in der ersten Schleife angezeigt wurden.

Wenn Sie mit dem Hinzufügen von Code-Snippets zu Ihrer Website nicht vertraut sind, ist die Verwendung von WPCode ein einfacher Weg. Es ist das beste Code-Snippet-Plugin für WordPress, mit dem Sie benutzerdefinierten Code hinzufügen können, ohne zu riskieren, dass Ihre Website beschädigt wird.

Zunächst müssen Sie das WPCode-Plugin installieren und aktivieren. Wenn Sie Hilfe benötigen, lesen Sie bitte unsere Anleitung zur Installation eines WordPress-Plugins.

Nach der Aktivierung können Sie im WordPress-Dashboard auf Code-Snippets + Snippet hinzufügen gehen und dann auf die Option „Eigenen Code hinzufügen (neues Snippet)“ klicken.

Add a new custom code snippet in WPCode

Danach können Sie den benutzerdefinierten Code in den Codevorschaubereich einfügen und oben einen Titel eingeben.

Sie müssen auch den „Code-Typ“ als PHP-Snippet auswählen, indem Sie auf das Dropdown-Menü klicken.

Enter custom code snippet

Nachdem Sie den Code eingegeben haben, blättern Sie einfach nach unten und wählen den Abschnitt Einfügen.

Hier können Sie die Standardeinstellung „Automatisch einfügen“ verwenden und das Plugin den Code automatisch zu Ihrer Website hinzufügen lassen.

Insertion methods for snippets in WPCode

Wenn Sie fertig sind, speichern Sie einfach das Snippet und aktivieren es.

Weitere Einzelheiten finden Sie in unserer Anleitung zum Hinzufügen von benutzerdefiniertem Code in WordPress.

Wenn Sie nun Ihre WordPress-Website besuchen, werden Sie feststellen, dass die doppelten Beiträge verschwunden sind.

Removing duplicate posts when using multiple posts in WordPress

Wir hoffen, dass dieser Artikel Ihnen geholfen hat zu erfahren, wie Sie die Anzeige doppelter Beiträge mit mehreren Schleifen in WordPress vermeiden können. Vielleicht interessieren Sie sich auch für unseren Leitfaden zur Auswahl der besten Webdesign-Software oder unsere Expertenauswahl der besten Drag-and-Drop-WordPress-Seitenersteller.

Wenn Ihnen dieser Artikel gefallen hat, dann abonnieren Sie bitte unseren YouTube-Kanal für WordPress-Videotutorials. Sie können uns auch auf Twitter und Facebook finden.

Offenlegung: Unsere Inhalte werden von unseren Lesern unterstützt. Das bedeutet, dass wir möglicherweise eine Provision verdienen, wenn Sie auf einige unserer Links klicken. Mehr dazu erfahren Sie unter Wie WPBeginner finanziert wird , warum das wichtig ist und wie Sie uns unterstützen können. Hier finden Sie unseren redaktionellen Prozess .

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

Das ultimative WordPress Toolkit

Erhalte KOSTENLOSEN Zugang zu unserem Toolkit - eine Sammlung von WordPress-bezogenen Produkten und Ressourcen, die jeder Profi haben sollte!

Reader Interactions

16 KommentareEine Antwort hinterlassen

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Satriyo says

    Could someone tell me how to do this? I’m really new to this and need a help, please give me a clear example with the post ID, how to store it? Let’s say, mine is 1527.

  3. Gaurav says

    I’m running 2 loops before loops of a specific category in which I would like to avoid duplicates. So how do a store ID’s in the array from first two loops?

  4. Julie says

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

  5. Pirooz says

    This method just works fine until both of 2 loops located in one file.
    but when I put the first loop in the header.php and another one in the index.php,
    in_array($post->ID, $do_nit_duplicate) returns null.
    what can I do?

  6. warren says

    Good afternoon all,

    will this work for my current issue with double display of posts on site? it literally displays a copy under the posts and the 1, 2, -> button…

    the site is I have deactivated re-activated plugins i am literally going nuts.

  7. sergeyvlasov says

    I think there is a flaw in this algorithm. It can spot no more than 1(one) duplication. So the magic line would look like
     
    $do_not_duplicate[] = $post->ID
     
    and then used as
     
    if(in_array($post->ID, $do_nit_duplicate)) continue;

Schreibe einen Kommentar zu Gaurav Antworten abbrechen

Danke, dass du einen Kommentar hinterlassen möchtest. Bitte beachte, dass alle Kommentare nach unseren kommentarpolitik moderiert werden und deine E-Mail-Adresse NICHT veröffentlicht wird. Bitte verwende KEINE Schlüsselwörter im Namensfeld. Lass uns ein persönliches und sinnvolles Gespräch führen.