4 votes

Wordpress - Récupérer toutes les données et les trier

J'utilise Wordpress. J'ai la requête suivante pour récupérer les données de la base de données et elle fonctionne parfaitement

$args1 = array(
 'post_type' => 'gallery',
 'posts_per_page' => $gnum,
 'post__in' => array(400, 403),
 'paged' => $paged,
 'orderby' => 'title',
 'order' => 'ASC'                    

);

query_posts($args1);

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

//And then some other code to display data

Utilisation 'post__in' => array(400, 403), dans la requête ci-dessus, je récupère les lignes où ID='400' AND '403' . Ainsi, lorsque j'effectue un écho, je ne vois que deux informations.

Ce que j'essaie de faire, c'est de récupérer toutes les données de la table, mais lorsque j'affiche les informations, je veux obtenir la ligne dont l'ID est 400, puis 403, puis le reste des lignes en fonction de l'ID de l'utilisateur. 'orderby' => 'title', AND 'order' => 'ASC'

Pourriez-vous nous aider à répondre à cette question ?

Remerciements

Editer

$args2 = array(
 'post_type' => 'gallery',
 'posts_per_page' => $gnum,
 'post__not_in' => array(400, 403),
 'paged' => $paged,
 'orderby' => 'title',
 'order' => 'ASC'                    

);

query_posts($args2);

3voto

Jon Points 4656

Je ne sais pas si cela fonctionnera dans le cadre de la query_post Il s'agit d'un argument qui vient compléter un SQL valide. Essayez :

$args = array(
 'post_type' => 'gallery',
 'posts_per_page' => $gnum,
 'paged' => $paged,
 'orderby' => 'case when ID in (400,403) then -1 else title end, title',
 'order' => 'ASC'                    
);

query_posts($args);

0voto

Mike Brant Points 39322

Cela ne sera pas possible en utilisant la structure de requête de Wordpress comme vous le faites. Une solution possible est d'effectuer une deuxième requête pour rechercher les résultats qui ne sont pas dans (400, 403) et d'ajouter simplement ce tableau de résultats à la fin de votre premier tableau.

Pour ce faire, vous devriez probablement utiliser get_posts() au lieu de query_posts() de sorte qu'il ne modifie pas la boucle principale.

$array = get_posts($args1);
$array = array_merge($array, get_posts($args2);

0voto

parrker9 Points 904

Je suppose que vous pouvez essayer de faire ce qui suit :

$args = array(
 'post_type' => 'gallery',
 'posts_per_page' => $gnum,
 'paged' => $paged,
 'orderby' => 'ID = 400 DESC, ID = 403 DESC, title',
 'order' => 'ASC'                    
);

query_posts($args);
...

Tenez-moi au courant.

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