je travaille actuellement sur un modèle de blog personnalisé et je me demandais s’il serait possible de savoir si le dernier message d’une catégorie est également le dernier article de l’ensemble du blog, afin que je puisse sauter le premier message de la catégorie.
En gros, je demande comment je ferais ceci: Si (3) = (1), ignorez (3) et affichez le deuxième message le plus récent de la catégorie (dans ce cas, la catégorie (B)).
Des informations supplémentaires sur mon blog en particulier, tandis que les informations ci-dessus sont plus générales/universelles.
Dans mon blog, j'ai également une catégorie qui est exclue du blog et affichée uniquement sur une page spécifique. Comment pourrais-je exclure cette catégorie de la solution complète pour la question initiale? Serait-ce simplement suffisant pour écrire 'cat' => -123,
?
Donc, le moyen le plus simple de le faire serait de stocker l'ID du premier post (1)
, puis dans chacune de vos boucles de catégorie, vous pouvez utiliser la propriété post__not_in
comme suit:
// inside the first loop at the top.
$latest_post_id = get_the_ID();
// WP_Query for fetching each category
$category_query = new WP_Query( [
// other parameters
'post__not_in' => [ $latest_post_id ],
] );
Maintenant, pour exclure une catégorie dans WP_Query
, vous pouvez utiliser category__not_in
qui prend un tableau d'identifiants de catégorie. Il vaut vraiment la peine de consulter le codex wordpress pour WP_Query
Utilisez simplement le paramètre "post__not_in" dans votre seconde requête.
$query1 = new WP_Query...
$used_posts = array();
while ( $query1->have_posts() ) :
$query1->the_post();
$used_posts[]= get_the_ID();
...
endwhile;
$query2 = new WP_Query( array(
'post__not_in' => $used_posts,
...
) );