web-dev-qa-db-ja.com

特定の投稿IDで配列順に含める

私は以下を持っています:

<?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(); 
                ?>

私は単純に投稿IDを入れて、特定の投稿を表示させ、それらの投稿のみを表示させることができると考えました。残念ながら、そうではありません。だから私はこれを達成することができる方法を誰かが知っているかどうか疑問に思いました。

前もって感謝します!

3
Nina

特定の投稿IDから投稿を取得するには、includeの代わりにpost__inkeyを使用します。

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

そしてorder postsによるgiven posts idsには、次のような配列を使うことができます。

$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)
); 

orderby値内でpost__inを使用すると、post__inで渡されるIDの配列の順序が守られます。

20
stephenkeable

私の場合、コロン「;」を削除して、「、」のように置き換えることでこのように動作します。

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