Allow filtering comments by user_id via URL. Props neoxx. Fixes #14163

git-svn-id: https://develop.svn.wordpress.org/trunk@15887 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
scribu
2010-10-21 14:03:25 +00:00
parent e93f819e09
commit a3ef15ffc0
2 changed files with 36 additions and 3 deletions

View File

@@ -1185,10 +1185,11 @@ class WP_Query extends WP_Object_Query {
, 'preview'
, 's'
, 'sentence'
, 'fields'
);
foreach ( $keys as $key ) {
if ( !isset($array[$key]))
if ( !isset($array[$key]) )
$array[$key] = '';
}
@@ -1196,7 +1197,7 @@ class WP_Query extends WP_Object_Query {
'tag__in', 'tag__not_in', 'tag__and', 'tag_slug__in', 'tag_slug__and');
foreach ( $array_keys as $key ) {
if ( !isset($array[$key]))
if ( !isset($array[$key]) )
$array[$key] = array();
}
return $array;
@@ -1648,7 +1649,7 @@ class WP_Query extends WP_Object_Query {
$join = '';
$search = '';
$groupby = '';
$fields = "$wpdb->posts.*";
$fields = '';
$post_status_join = false;
$page = 1;
@@ -1729,6 +1730,17 @@ class WP_Query extends WP_Object_Query {
else
$q['no_found_rows'] = false;
switch ( $q['fields'] ) {
case 'ids':
$fields = "$wpdb->posts.ID";
break;
case 'id=>parent':
$fields = "$wpdb->posts.ID, $wpdb->posts.post_parent";
break;
default:
$fields = "$wpdb->posts.*";
}
// If a month is specified in the querystring, load that month
if ( $q['m'] ) {
$q['m'] = '' . preg_replace('|[^0-9]|', '', $q['m']);
@@ -2272,6 +2284,7 @@ class WP_Query extends WP_Object_Query {
$groupby = 'GROUP BY ' . $groupby;
if ( !empty( $orderby ) )
$orderby = 'ORDER BY ' . $orderby;
$found_rows = '';
if ( !$q['no_found_rows'] && !empty($limits) )
$found_rows = 'SQL_CALC_FOUND_ROWS';
@@ -2280,7 +2293,24 @@ class WP_Query extends WP_Object_Query {
if ( !$q['suppress_filters'] )
$this->request = apply_filters_ref_array('posts_request', array( $this->request, &$this ) );
if ( 'ids' == $q['fields'] ) {
$this->posts = $wpdb->get_col($this->request);
return $this->posts;
}
if ( 'id=>parent' == $q['fields'] ) {
$this->posts = $wpdb->get_results($this->request);
$r = array();
foreach ( $this->posts as $post )
$r[ $post->ID ] = $post->post_parent;
return $r;
}
$this->posts = $wpdb->get_results($this->request);
// Raw results filter. Prior to status checks.
if ( !$q['suppress_filters'] )
$this->posts = apply_filters_ref_array('posts_results', array( $this->posts, &$this ) );