The example from the document should work fine. get_posts () uses WP_Query () behind the scenes to make the actual request. For your case, the modified example should look something like this:
// Create a new filtering function that will add our where clause to the query function filter_where( $where = '' ) { // posts in the last 30 days $where .= " AND post_date > '" . date('Ym-d', strtotime('-10 days')) . "'"; return $where; } add_filter( 'posts_where', 'filter_where' ); $query = get_posts(array ( 'numberposts' => 5, 'orderby'=>'comment_count', 'order'=>'DESC', 'post_type' => array ( 'post' ) )); remove_filter( 'posts_where', 'filter_where' );
source share