Make WordPress Core


Ignore:
Timestamp:
04/20/2015 03:15:14 PM (10 years ago)
Author:
boonebgorges
Message:

Ensure that 'who' param is respected when generating meta_query in WP_User_Query.

Since [31669], the 'who' param had been parsed after meta_query was generated,
so that 'who' was effectively ignored.

Props imath.
Fixes #32019.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/user.php

    r32116 r32207  
    627627        }
    628628
     629        $blog_id = 0;
     630        if ( isset( $qv['blog_id'] ) ) {
     631            $blog_id = absint( $qv['blog_id'] );
     632        }
     633
     634        if ( isset( $qv['who'] ) && 'authors' == $qv['who'] && $blog_id ) {
     635            $qv['meta_key'] = $wpdb->get_blog_prefix( $blog_id ) . 'user_level';
     636            $qv['meta_value'] = 0;
     637            $qv['meta_compare'] = '!=';
     638            $qv['blog_id'] = $blog_id = 0; // Prevent extra meta query
     639        }
     640
    629641        // Meta query.
    630642        $this->meta_query = new WP_Meta_Query();
    631643        $this->meta_query->parse_query_vars( $qv );
    632 
    633         $blog_id = 0;
    634         if ( isset( $qv['blog_id'] ) ) {
    635             $blog_id = absint( $qv['blog_id'] );
    636         }
    637644
    638645        $role = '';
     
    774781
    775782            $this->query_where .= $this->get_search_sql( $search, $search_columns, $wild );
    776         }
    777 
    778         if ( isset( $qv['who'] ) && 'authors' == $qv['who'] && $blog_id ) {
    779             $qv['meta_key'] = $wpdb->get_blog_prefix( $blog_id ) . 'user_level';
    780             $qv['meta_value'] = 0;
    781             $qv['meta_compare'] = '!=';
    782             $qv['blog_id'] = $blog_id = 0; // Prevent extra meta query
    783783        }
    784784
Note: See TracChangeset for help on using the changeset viewer.