CẬP NHẬT ngày 23 tháng 12 năm 2014
Có một phương thức tốt hơn bằng cách sử dụng date_querythuộc tính của WP_Querylớp:
$args = array(
    'post_type' => 'post', 
    'tax_query' => array(
        array( 
            'taxonomy'  => 'post_format',
            'field'     => 'slug',
            'terms'     => array( 'post-format-image' )
        )
    ),
    'cat'           => '-173',
    'post_status'   => 'publish',
    'date_query'    => array(
        'column'  => 'post_date',
        'after'   => '- 30 days'
    )
);
$query = new WP_Query( $args );
TRẢ LỜI
Sử dụng tham số thời gian trong WP_Query ()
Trích dẫn ví dụ từ Codex:
Trả lại bài viết từ 30 ngày qua:
// This takes your current query, that will have the filtering part added to.
$query_string = array(
    'post_type' => 'post', 
    'tax_query' => array(
        array(
            'taxonomy'  => 'post_format',
            'field'     => 'slug',
            'terms'     => array( 'post-format-image' )
        )
    ),
    'cat'           => '-173',
    'post_status'   => 'publish'
);
// 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( 'Y-m-d', strtotime( '-30 days' ) ) . "'";
    return $where;
}
add_filter( 'posts_where', 'filter_where' );
$query = new WP_Query( $query_string );
remove_filter( 'posts_where', 'filter_where' );
Chỉnh sửa 
(để trả lời câu hỏi cập nhật của OP).
Tránh sử dụng query_posts . Bạn có thể sử dụng kỹ thuật trên để thay đổi truy vấn chính của mình (theo một số điều kiện bổ sung - là trang chủ, là một trang có tên 'foobar', v.v.):
function wpse52070_filter_where( $where = '' , $query ) {
   if( $query->is_main_query() && is_page( 'foobar' ) ){
      // posts in the last 30 days
      $where .= " AND post_date > '" . date( 'Y-m-d', strtotime( '-30 days' ) ) . "'";
   }
    return $where;
}
add_filter( 'posts_where', 'wpse52070_filter_where' );