0

orderby=rand を使用してカスタム投稿タイプから 6 つのランダムな投稿を返すために、query_posts を使用しています。

これはうまくいきます。でも。クエリが投稿を返したら、それらを番号順に並べ替える必要があります。

私が使用している現在のコードは次のようになります。

<?php query_posts('post_type=my_post_type&orderby=rand&showposts=6'); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

Do stuff

<?php endwhile; else: ?>
<?php endif; ?>

したがって、6 つの投稿をランダムに選択する必要があり、それらを番号順に並べ替える必要があります。どんな助けでも大歓迎です!

4

1 に答える 1

0

あなたのためのいくつかのメタコード、実際にこれを機能させるには、あなたの側でいくらか掘り下げる必要がありますが、これはうまくいけば正しい軌道に乗るでしょう.

ここでの一般的な考え方は、query_posts から ID を取得して並べ替えれば、必要に応じて出力できるということです。

<?php 
    query_posts('post_type=my_post_type&orderby=rand&showposts=6'); 

    // Create your result array
    $postArray = array();

    if ( have_posts() ) : while ( have_posts() ) : the_post(); 

        $postArray[] = /*POST ID GOES HERE*/

    endwhile; else:
    endif;

    // Now sort it
    sort($postArray,SORT_NUMERIC);

    // Now iterate over $postArray outputting post id $postArray[0] -> $postArray[n]

?>

もう 1 つのオプションは、$postArray にデータを入力してから、$postArray を反復処理することです。数値キーが使用されている場合$postArray[/*POST ID*/] = /* OUTPUT */;、PHP はおそらく自動的にソートするはずです。

于 2013-03-26T13:56:35.367 に答える