web-dev-qa-db-ja.com

カスタム投稿タイプからランダムなカスタム投稿を取得する

私はpredicという名前のカスタム投稿タイプを作成しました。私はこの投稿の1つの中に、同じカスタム投稿タイプからの4つのランダムな投稿を入れようとしています。私はこのコードを使いましたが、私は4回で同じ投稿を続けています。

<ul>
<?php
$Rand_posts = get_posts('numberposts=4&orderby=Rand');
foreach( $Rand_posts as $post ) :
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
</ul>
2
ciro

あなたのforeach行にsetup_postdata($post);を含める必要があります。これは、あなたのクエリに合うように採用された、コーデックスからの素晴らしいデモコードです。

<ul>
<?php
global $post;
$tmp_post = $post;
$myposts = get_posts( 'post_type=predic&numberposts=4&orderby=Rand' );
foreach( $myposts as $post ) : setup_postdata($post); ?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
<?php $post = $tmp_post; ?>
</ul>

$ postも現在の投稿にリセットされているので、他の機能を壊すことはありません。

4
Matthew Boynes