web-dev-qa-db-fra.com

orderby: la date ne fonctionne pas

Je cherchais une réponse et il semble y avoir beaucoup de réponses à la question opposée. J'essaye de trier par date de publication, pas par date modifiée, en utilisant ce code:

query_posts($query_string . '&orderby=date&order=DESC&posts_per_page=-1');

Mais il est toujours en train de trier la date de modification, pas la date de publication, peut-on aider

Merci d'avance!

1
Donna

Vous ne devriez pas avoir à spécifier orderby=date. C'est le défaut. Si vous examinez la requête, vous constaterez que le champ utilisé est post_date, qui correspond à la date de publication et non à la date de modification - post_modified.

Vous pouvez le prouver simplement en déchargeant $wp_query après votre appel à query_posts. Ou essayez:

$q = new WP_Query('posts_per_page=-1');
var_dump($q->request);

Sans autre paramètre, vous obtenez ORDER BY wp_posts.post_date DESC.

Si vous n'obtenez pas cet ordre, il existe déjà un filtre modifiant le comportement par défaut. Qu'est-ce que l'ajout de ce filtre, je ne peux pas deviner.

Et oui, veuillez ne pas utiliser query_posts.

Il convient de noter que l’utilisation de cette option pourremplacer la requête principalesur une page peutaugmenter les temps de chargement de la page, dans le pire des scénariosplus que doubler la quantité de travail nécessaire ou plus. Bien que facile à utiliser, la fonction est aussisujette à la confusion et aux problèmesplus tard. Voir la note ci-dessous sur les mises en garde pour plus de détails.

http://codex.wordpress.org/Function_Reference/query_posts (souligné par moi)

2
s_ha_dum