it-swarm.com.de

Wie vermeide ich doppelte Beiträge auf der Titelseite?

wie vermeide ich doppelte Beiträge auf der Titelseite? Ich habe 1 Kategorie "Nachrichten" für alle Beiträge und einige Kategorien wie "Gemüse" und "Obst". Jeder Beitrag ist in "Nachrichten" und bestimmten Kategorie.

Oben auf der Seite habe ich die letzten 3 'News' Posts und an anderen Stellen möchte ich zB 3 aktuelle Posts für die Kategorie 'Früchte' drücken, aber nicht 3 aktuelle 'News' Posts duplizieren. ich habe es mit so etwas versucht:

query_posts( 'posts_per_page=3&category_name=fuits' ) && query_posts('posts_per_page=3&category_name=news&offset=3' );

Kann mir jemand helfen?

1
Marcin

Verwenden Sie so einen && nicht. Und verwenden Sie query_posts() nicht an erster Stelle (Dies ist dazu gedacht, eine Abfrage zu ändern und keine separate Abfrage auszuführen!). Treffen Sie stattdessen Ihre erste Auswahl, ziehen Sie dann die IDs der Posts in dieser Auswahl heraus und übergeben Sie sie an die zweite Abfrage .

$fruit = get_posts( 
    array(
         'posts_per_page' => 3,
         'category_name'   => 'fruits'
    )
);

// Get an array with just the IDs of the posts in the $fruit array
$fruit_ids = wp_list_pluck( $fruit, 'ID' );

$news = get_posts( 
    array(
        'posts_per_page' => 3,
        'category_name'  => 'news',
        'post__not_in'   => $fruit_ids
    )
);

Ihr $fruit-Array enthält jetzt die drei neuesten Fruchtbeiträge und das $news-Array enthält jetzt die drei neuesten Nachrichtenbeiträge (ausgenommen die drei Beiträge im $fruits-Array).

Sie können die Schleife folgendermaßen durchlaufen:

foreach ( $news as $post ) {
    setup_postdata( $post );

    // Now use the_title(), the_content(), etc as usual.
}
3
EAMann