Question

Utilisation query_posts, comment puis-je commander la liste des postes afin que ceux avec les commentaires les plus récents sont en haut?

Je cherche quelque chose de similaire à la façon dont les questions ici sur SE sont commandés lorsque vous triez par « actif ».

Était-ce utile?

La solution

Je ne voudrais pas utiliser query_posts(). Cette fonction particulière est destinée à apporter des modifications à une requête spécifique ... et il est assez limité que vous ne pouvez pas obtenir le genre de fonctionnalités personnalisées dont vous avez besoin en sortir.

Au contraire, j'utiliser une requête personnalisée. Qu'est-ce que vous voulez faire est de commentaires approuvé la requête triés par date de publication / approbation et que les joindre messages dans votre base de données. Si un poste n'a pas de commentaires, il serait automatiquement filtré en fonction de ce critère.

très simple exemple pseudo-code:

$qstr = 'SELECT * FROM wp_posts ON (wp_posts.post_id = wp_commnets.comment_post_id) WHERE wp_comments.comment_approved='approved' ORDER BY wp_comments.comment_date';
$my_query = new WP_Query($qstr);

while($my_query->have_posts() ...

En gros, vous choisissez les messages en fonction de critères spécifiques liés aux données dans le tableau des commentaires. En utilisant une requête directe nécessite une certaine profondeur des connaissances sur les instructions SQL et la structure de base de données WP, mais ... il est donc généralement pas ma première recommandation, mais devrait fonctionner dans votre cas.

Rappelez-vous que le code ci-dessus est pseudo-code ... ce qui signifie que je l'ai inventée du haut de ma tête, il ne fonctionne pas, et vous ne devriez l'utiliser comme un exemple conceptuel .

Pour référence:

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top