Make WordPress Core


Ignore:
Timestamp:
04/20/2011 06:02:41 PM (14 years ago)
Author:
ryan
Message:

Allow retrieving comments by post type, status, author, author, name, or parent. Fetch only published posts for recent comments widget. Props filosofo. fixes #16506 #12904

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/comment.php

    r17613 r17667  
    214214            'post_ID' => '',
    215215            'post_id' => 0,
     216            'post_author' => '',
     217            'post_name' => '',
     218            'post_parent' => '',
     219            'post_status' => '',
     220            'post_type' => '',
    216221            'status' => '',
    217222            'type' => '',
     
    320325            $where .= $this->get_search_sql( $search, array( 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_author_IP', 'comment_content' ) );
    321326
     327        $post_fields = array_filter( compact( array( 'post_author', 'post_name', 'post_parent', 'post_status', 'post_type', ) ) );
     328        if ( ! empty( $post_fields ) ) {
     329            $join = "JOIN $wpdb->posts ON $wpdb->posts.ID = $wpdb->comments.comment_post_ID";
     330            foreach( $post_fields as $field_name => $field_value )
     331                $where .= $wpdb->prepare( " AND {$wpdb->posts}.{$field_name} = %s", $field_value );
     332        }
     333
    322334        $pieces = array( 'fields', 'join', 'where', 'orderby', 'order', 'limits' );
    323335        $clauses = apply_filters_ref_array( 'comments_clauses', array( compact( $pieces ), &$this ) );
Note: See TracChangeset for help on using the changeset viewer.