在特定日期/特定年龄之间随机发布帖子

时间:2013-10-02 作者:pulla

我需要从一个自定义的帖子类型随机获得帖子ID,帖子将在30天内发布<但我真的找不到解决办法。我该怎么做?

这是我的问题。

query_posts("post_type=\'random_posts\'&order=\'DESC\'&posts_per_page=10");
//shuffle(query_posts())

1 个回复
最合适的回答,由SO网友:Johannes Pille 整理而成

事先注意两点:

没有(除非您创建了CPT)post type random_posts.

  • Don\'t use query_posts.

    话虽如此,以下内容将满足您的需要:

    只是随机性

    $args = array(
         \'posts_per_page\' => \'10\',
         \'orderby\' => \'rand\' 
    );
    $random_posts = get_posts( $args );
    
    foreach( $random_posts as $random_post ) {
        // do something
        echo $random_post->ID . \'<br />\\n\'; // access Post ID, for instance
    }
    
    参考号:get_posts

    日期早于3.7,到目前为止,您的30天离职限制不可能在一次查询中轻松实现。您可以轻松地从当月获取帖子,如下所示:

    $args = array(
         \'posts_per_page\' => \'10\',
         \'orderby\' => \'rand\',
         \'monthnum\' => intval( date( \'n\' ) )
    );
    // rest same as above
    
    在一个月结束的时候,这对你来说很好,但在一个月的第一天,你会得到不好的结果(即什么都没有)。

    另一种选择是查询比所需的10个职位多得多的职位,并在循环搜索结果的同时检查日期。也感觉很不舒服<幸运的是,WP 3.7即将面世。。。

    从WP 3.7开始的日期

    WordPress 3.7 will introduce the date_query parameter. (真是太棒了。)
    -->Usage

    这将使您的需求变得简单:

    $args = array(
        \'posts_per_page\' => \'10\',
        \'orderby\' => \'rand\',
        \'date_query\' => array(
            array(
                \'column\' => \'post_date_gmt\',
                \'after\'  => \'1 month ago\'
            )
        )
    );
    // rest same as above   
    

  • 结束