Ticket #12668: 12668-comments-query.3.patch
File 12668-comments-query.3.patch, 1.5 KB (added by , 10 years ago) |
---|
-
src/wp-includes/comment.php
131 131 * @uses $wpdb 132 132 * 133 133 * @param int $post_id The ID of the post 134 * @param array $args WP_Comment_Query args 134 135 * @return array $comments The approved comments 135 136 */ 136 function get_approved_comments($post_id) { 137 global $wpdb; 138 return $wpdb->get_results($wpdb->prepare("SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND comment_approved = '1' ORDER BY comment_date", $post_id)); 137 function get_approved_comments( $post_id = 0, $args = array() ) { 138 $defaults = array( 139 'status' => 1, 140 'post_id' => $post_id 141 ); 142 $r = wp_parse_args( $args, $defaults ); 143 144 $query = new WP_Comment_Query; 145 return $query->query( $r ); 139 146 } 140 147 141 148 /** … … 447 454 } elseif( 'pings' == $this->query_vars['type'] ) { 448 455 $where .= ' AND comment_type IN ("pingback", "trackback")'; 449 456 } elseif ( ! empty( $this->query_vars['type'] ) ) { 450 $where .= $wpdb->prepare( ' AND comment_type = %s', $this->query_vars['type'] ); 457 if ( is_array( $this->query_vars['type'] ) ) { 458 $where .= ' AND comment_type IN (' . implode( ',', array_map( 'esc_sql', $this->query_vars['type'] ) . ')'; 459 } elseif ( '' !== $this->query_vars['type'] ) { 460 $where .= $wpdb->prepare( ' AND comment_type = %d', $this->query_vars['type'] ); 461 } 451 462 } 452 463 453 464 if ( '' !== $this->query_vars['parent'] ) {