web-dev-qa-db-fra.com

Comment commander ma requête de boucle?

J'ai une table dans ma base de données contenant un décompte de vote que j'essaie de commander des articles par.

capture d'écran: le tableau

J'ai essayé quelque chose comme ceci, qui affiche tous les messages votés et la pagination, mais ne les commande pas par DESC. Tout conseil si j'approche de ce droit est apprécié.

   <?php
 global $wpdb;
$my_posts = $wpdb->get_col("SELECT like_pid FROM wp_likes_count ORDER BY like_count");
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
    'post__in' => $my_posts['like_pid'],
    'paged' => $paged,
    'posts_per_page' => 6,

    'order' => 'DESC'
    );
query_posts($args); ?>


               <?php while (have_posts()) : the_post(); ?>    
               <!-- do stuff -->
               <?php endwhile; ?>
1
DOA

Le problème

$my_posts ne contient aucun article. Il contient des identifiants de post et de j'aime. Et vous déposez les deux dans post__in, qui ne peut pas fonctionner. Je suppose que même le nombre de publications ne fonctionnerait pas si le plugin (?) N’ajoutait aucune publication avec un entier 0-x à la base de données par défaut.

Le débogage

Essayez ce qui suit:

$my_likes = $wpdb->get_col("SELECT like_pid FROM wp_likes_count ORDER BY like_count DESC");
echo '<pre>';
print_r( $my_likes );
echo '</pre>';

qui vous montrera probablement un tableau contenant deux sous-tableaux.

Chemin vers une solution

Ensuite, essayez d’obtenir le sous-tableau dont vous avez besoin et déposez-le dans votre requête. Exemple: 'post__in' => $my_likes['like_pid'].

Le plugin

Quoi qu'il en soit, un plugin devrait stocker quelque chose comme ceci dans la table post_meta dans un champ et ne pas ajouter une table inutile pour quelque chose comme ça. Il devrait y avoir un plugin facebook par otto dans le dépôt de wp.org. Celui-ci est beaucoup plus fort, mieux écrit et rédigé par un auteur digne de confiance. Vous devriez envisager de changer.

0
kaiser

Utilisez le paramètre 'order' dans votre appel de boucle.

$args = array(
    'post__in' => $my_posts,
    'paged' => $paged,
    'posts_per_page' => 6,
    'order' => 'DESC'
);

Il y a aussi un paramètre order_by

http://codex.wordpress.org/Function_Reference/query_posts

1
supajb