2 votes

Une seule requête WP_Query peut-elle obtenir les messages de la balise X, mais si aucun résultat, revenir à la catégorie X ?

Est-il possible d'exécuter une seule WP_Query :

$args = array(
    'tag__in' => 5
);
new WP_Query( $args );

mais si 0 messages sont trouvés, pour montrer de la catégorie X ?

Est-ce que le seul moyen de vérifier si have_posts() et si zéro de lancer une nouvelle requête avec la catégorie ? J'espère que non.

1voto

mburesh Points 807

Je ne suis pas sûr que ce soit exactement ce que vous voulez faire car il y a toujours une autre requête en cours d'exécution, mais vous pourriez utiliser get_term_by avant d'exécuter la requête pour vérifier s'il existe des messages avec cette balise. Ensuite, modifiez le tableau $args en fonction de ce qui est renvoyé.

Je n'ai pas fait de tests, mais quelque chose comme ça devrait fonctionner.

$args = array();
$total = get_term_by( 'id', 5, 'post_tag' );

if ( $total->count > 0 ) {
    $args['tag__in'] = 5;
} else {
    $args['cat'] = 1;
} 
new WP_Query( $args );

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X