Make WordPress Core

Ticket #12668: 12668-comments-query.2.patch

File 12668-comments-query.2.patch, 1.6 KB (added by dancameron, 10 years ago)

cleaning up previous patch

  • src/wp-includes/comment.php

     
    131131 * @uses $wpdb
    132132 *
    133133 * @param int $post_id The ID of the post
     134 * @param string $comment_type The type of comment to get
    134135 * @return array $comments The approved comments
    135136 */
    136 function get_approved_comments($post_id) {
     137function get_approved_comments( $post_id, $comment_type = '' ) {
    137138        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));
     139
     140        $type = "";
     141        if( ! empty( $comment_type ) ) {
     142                $type = " AND comment_type = '%s'";
     143        }
     144
     145        return $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND comment_approved = '1'$type ORDER BY comment_date", $post_id, $comment_type ) );
    139146}
    140147
    141148/**
     
    447454                } elseif( 'pings' == $this->query_vars['type'] ) {
    448455                        $where .= ' AND comment_type IN ("pingback", "trackback")';
    449456                } 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( ',', $this->query_vars['type'] ) . ')';
     459                        } elseif ( '' !== $this->query_vars['type'] ) {
     460                                $where .= $wpdb->prepare( ' AND comment_type = %d', $this->query_vars['type'] );
     461                        }
    451462                }
    452463
    453464                if ( '' !== $this->query_vars['parent'] ) {