私は以下を持っています:
<?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を入れて、特定の投稿を表示させ、それらの投稿のみを表示させることができると考えました。残念ながら、そうではありません。だから私はこれを達成することができる方法を誰かが知っているかどうか疑問に思いました。
前もって感謝します!
特定の投稿IDから投稿を取得するには、include
の代わりにpost__in
keyを使用します。
$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),
);
$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の配列の順序が守られます。
私の場合、コロン「;」を削除して、「、」のように置き換えることでこのように動作します。
'orderby' => 'post__in',
'post__in' => array(185, 157, 163),