web-dev-qa-db-fra.com

Trier par un tableau par identifiants postaux spécifiques

J'ai le suivant:

<?php $num_cols = 2; // set the number of columns here


            $args = array(
                    'post_type' => 'testimonials',
                    'posts_per_page' => 4,
                    'orderby' => 'ID', 
                    'include' => '883, 563, 568, 106',                                  
                    'order' => ''           

                    ); 
            query_posts($args);
            if (have_posts()) :
            for ( $i=1 ; $i <= $num_cols; $i++ ) :
            echo '<div id="col-'.$i.'" class="col">';
            $counter = $num_cols + 1 - $i;
            while (have_posts()) : the_post();

            if( $counter%$num_cols == 0 ) : ?>
                <div id="box">

                <?php the_post_thumbnail('post-thumbnail', array('title' => '', 'alt' => '')); ?>



                <?php the_excerpt();?>
                </div>
                <?php endif; $counter++;
                  endwhile;
                  echo '</div>'; 
                  endfor;
                  endif; 
                wp_reset_query(); 
                ?>

Je pensais qu'en mettant simplement les identifiants de post, je pouvais avoir les posts spécifiques, et seulement ces posts. Malheureusement, cela ne semble pas être le cas. Je me demandais donc si quelqu'un savait comment je pourrais accomplir cela.

Merci d'avance!

3
Nina

utilisezpost__inkey au lieu deincludepour obtenir des publications à partir des identifiants de publication spécifiques.

$args = array(
    'post_type' => 'testimonials',
    'posts_per_page' => 4,
    'orderby' => 'ID', 
    'post__in' => array(883, 563, 568, 106),
); 

Et àorder postspar legiven posts ids, vous pouvez utiliser le tableau suivant.

$args = array(
       'post_type' => 'testimonials',
       'posts_per_page' => 4,
      'orderby' => 'post__in', 
      'post__in' => array(883, 563, 568, 106),
   );
11
Milo
$args = array(
    'post_type' => 'testimonials',
    'posts_per_page' => 4,
    'orderby' => 'post__in', 
    'post__in' => array(883, 563, 568, 106)
); 

En utilisant post__in dans la valeur orderby, il honorera l'ordre du tableau d'ID transmis dans post__in

20
stephenkeable

pour moi, cela fonctionne en supprimant les deux points ";" et en les remplaçant par un coma "," comme ceci:

                   'orderby' => 'post__in',
                   'post__in' => array(185, 157, 163),
1
Rick Aranda