63585


wordpressのブログ記事を最新100件のブログ記事の中からランダムに3件取得するという条件に絞りたいのですが、なかなか実装できません。

[code]

    <?php $paged = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1;
    $args = array(
        'paged' => $paged,
        'posts_per_page' => １００,
        'post_type' =>'blog',
        'orderby' => 'date',
        'order' => 'DESC'
    );
    $wp_query = new WP_Query($args);
    ?>
    <?php if (have_posts()) : ?>
       <?php while (have_posts()) : the_post(); ?>
       //処理
       <?php endwhile; ?>
    <?php endif; ?>
    
[/code]

今このような条件で100件絞っています。  
そしてここから、ランダムに3件取得したいのですが可能でしょうか。  
いろいろ調べてみたのですが、なかなかうまくいかず…。  
ぜひよろしくお願いします！


CC BY-SA 4.0
2020-03-05T03:25:43.600
63583
2020-03-05T06:18:45.273
2020-03-05T06:18:45.273
3060
37613
question
php wordpress
Wordpressでブログ記事を最新100件の中からランダムに取得したい


**過去１００件の時、**  
'paged'と同時指定した事がないので、動作するか判らないのですが。

パラメーター' **numberposts** 'と' **order** 'を以下の様に指定するとランダムな 記事１００件が得られると思います。  
３件だけなら、`'numberposts' => 3,`にすると良いでしょう。

[code]

    $args = array(
        'numberposts' => 100,
        'post_type' =>'blog',
        'orderby' => 'rand'
    );
    
[/code]

追記、  
**最新記事１００件からランダム３件** は wordpressの get_posts関数と、shuffle使うと出来ますが  
以下のサンプルになります。（the_postは使えないと思うので）

[code]

    $argc = array('numberposts'=> 100,'order'=> 'DESC', 'orderby' => 'post_date','post_type' => 'blog');
    $out = get_posts($argc);
    shuffle($out);
    for($i=0;$i < 3;$i++){
        $pt = $out[$i];
        $id           = $pt->ID;
        $post_date    = $pt->post_date;
        $post_title   = $pt->post_title;
        $post_title   = $pt->post_title;
        $post_content = $pt->post_content;
        //..etc
    }
    
[/code]


CC BY-SA 4.0
2020-03-05T04:35:28.417
63585
2020-03-05T05:15:02.913
2020-03-05T05:15:02.913
22793
22793
63583
answer