WordPress : Deux requêtes avec WP_Query ajouter la seconde pour se terminer par la pagination
Ce que j’essaie de faire est de créer deux requêtes pour les propriétés. On récupérera les résultats réguliers basés sur une requête normale. La deuxième requête récupérera les propriétés étroitement liées à la première requête. Je suis capable d’exécuter les deux requêtes et de récupérer tous les résultats avec posts_per_page défini sur illimité et sans pagination. Le problème lors de l’ajout de la pagination est que les deux boucles s’exécutent et affichent des publications sur chaque page.
La page aurait 3 de la première boucle suivie de 3 de la deuxième boucle.
J’ai essayé de fusionner les deux requêtes en une seule et de les montrer, mais les mêmes résultats se produisent. 3 et 3.
Je pense que je dois ajouter d’une manière ou d’une autre pour être sûr que la deuxième boucle est sortie après la première. Des pensées?
Voici mes boucles (j’ai exclu les arguments à cause de la longueur)
<?php
$queryOne = new WP_Query($args);
$queryTwo = new WP_Query($args2);
$results = new WP_Query();
$results->posts = array_merge($queryOne->posts, $queryTwo->posts);
?>
<?php foreach($results->posts as $post) : ?>
<?php setup_postdata( $post ); ?>
<?php get_template_part( 'property-listing' ); ?>
<?php endforeach; ?>
Solution n°1 trouvée
en fonction de parse_query
cela, post_count
vous devrez ajouter les deux post_counts. Dans votre exemple post_count
n’est pas défini. Cela devrait fonctionner si vous remplissez le post_count. Ajoutez simplement ceci à la fin :
$results->post_count = $queryOne->post_count + $queryTwo->post_count;
Votre exemple complet :
<?php
$queryOne = new WP_Query($args);
$queryTwo = new WP_Query($args2);
$results = new WP_Query();
$results->posts = array_merge($queryOne->posts, $queryTwo->posts);
$results->post_count = $queryOne->post_count + $queryTwo->post_count;
foreach($results->posts as $post) :
setup_postdata( $post );
get_template_part( 'property-listing' );
endforeach;
?>
0 commentaire