web-dev-qa-db-fra.com

Comment éviter les messages en double sur la première page?

comment éviter les doublons sur la première page? J'ai 1 catégorie "nouvelles" pour tous les articles et certaines catégories comme "légumes" et "fruits". Chaque article est dans la catégorie "nouvelles" et particulière.

En haut de la page, j'ai publié 3 nouvelles "actualités" et dans d'autres endroits, je souhaite appuyer sur fe.3 nouvelles pour la catégorie "fruits", sans toutefois dupliquer 3 nouvelles "actualités". j'ai essayé avec qc comme ça:

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

Quelqu'un peut-il m'aider?

1
Marcin

N'utilisez pas un && comme ça. Et n'utilisez pas query_posts() en premier lieu (c'est pour modifier une requête, et non pour effectuer une requête séparée!) À la place, faites votre première sélection, puis extrayez les ID des publications de cette sélection et transmettez-les à la seconde requête. .

$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
    )
);

Votre tableau $fruit contient maintenant les trois derniers articles de fruit et le tableau $news contient désormais les 3 derniers articles de presse (à l'exception des 3 articles du tableau $fruits).

Vous pouvez parcourir la boucle comme ceci:

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

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