Make WordPress Core

Changeset 13758


Ignore:
Timestamp:
03/18/2010 09:55:25 PM (15 years ago)
Author:
westi
Message:

Make use of apply_filters_ref_array() when running the query. Fixes #9886 props scribu.

File:
1 edited

Legend:

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

    r13733 r13758  
    18071807            }
    18081808        }
    1809         $search = apply_filters('posts_search', $search, $this);
     1809        $search = apply_filters_ref_array('posts_search', array( $search, &$this ) );
    18101810
    18111811        // Category stuff
     
    22442244        // manipulations to them are reflected in the paging by day queries.
    22452245        if ( !$q['suppress_filters'] ) {
    2246             $where = apply_filters('posts_where', $where);
    2247             $join = apply_filters('posts_join', $join);
     2246            $where = apply_filters_ref_array('posts_where', array( $where, &$this ) );
     2247            $join = apply_filters_ref_array('posts_join', array( $join, &$this ) );
    22482248        }
    22492249
     
    22792279
    22802280            if ( !$q['suppress_filters'] ) {
    2281                 $cjoin = apply_filters('comment_feed_join', $cjoin);
    2282                 $cwhere = apply_filters('comment_feed_where', $cwhere);
    2283                 $cgroupby = apply_filters('comment_feed_groupby', $cgroupby);
    2284                 $corderby = apply_filters('comment_feed_orderby', 'comment_date_gmt DESC');
    2285                 $climits = apply_filters('comment_feed_limits', 'LIMIT ' . get_option('posts_per_rss'));
     2281                $cjoin = apply_filters_ref_array('comment_feed_join', array( $cjoin, &$this ) );
     2282                $cwhere = apply_filters_ref_array('comment_feed_where', array( $cwhere, &$this ) );
     2283                $cgroupby = apply_filters_ref_array('comment_feed_groupby', array( $cgroupby, &$this ) );
     2284                $corderby = apply_filters_ref_array('comment_feed_orderby', array( 'comment_date_gmt DESC', &$this ) );
     2285                $climits = apply_filters_ref_array('comment_feed_limits', array( 'LIMIT ' . get_option('posts_per_rss'), &$this ) );
    22862286            }
    22872287            $cgroupby = ( ! empty( $cgroupby ) ) ? 'GROUP BY ' . $cgroupby : '';
     
    23092309        // manipulate paging queries should use these hooks.
    23102310        if ( !$q['suppress_filters'] ) {
    2311             $where = apply_filters('posts_where_paged', $where);
    2312             $groupby = apply_filters('posts_groupby', $groupby);
    2313             $join = apply_filters('posts_join_paged', $join);
    2314             $orderby = apply_filters('posts_orderby', $orderby);
    2315             $distinct = apply_filters('posts_distinct', $distinct);
    2316             $limits = apply_filters( 'post_limits', $limits );
    2317 
    2318             $fields = apply_filters('posts_fields', $fields);
     2311            $where      = apply_filters_ref_array( 'posts_where_paged', array( $where, &$this ) );
     2312            $groupby    = apply_filters_ref_array( 'posts_groupby',     array( $groupby, &$this ) );
     2313            $join       = apply_filters_ref_array( 'posts_join_paged',  array( $join, &$this ) );
     2314            $orderby    = apply_filters_ref_array( 'posts_orderby',     array( $orderby, &$this ) );
     2315            $distinct   = apply_filters_ref_array( 'posts_distinct',    array( $distinct, &$this ) );
     2316            $limits     = apply_filters_ref_array( 'post_limits',       array( $limits, &$this ) );
     2317            $fields     = apply_filters_ref_array( 'posts_fields',      array( $fields, &$this ) );
    23192318        }
    23202319
     
    23242323        // Filter again for the benefit of caching plugins.  Regular plugins should use the hooks above.
    23252324        if ( !$q['suppress_filters'] ) {
    2326             $where = apply_filters('posts_where_request', $where);
    2327             $groupby = apply_filters('posts_groupby_request', $groupby);
    2328             $join = apply_filters('posts_join_request', $join);
    2329             $orderby = apply_filters('posts_orderby_request', $orderby);
    2330             $distinct = apply_filters('posts_distinct_request', $distinct);
    2331             $fields = apply_filters('posts_fields_request', $fields);
    2332             $limits = apply_filters( 'post_limits_request', $limits );
     2325            $where      = apply_filters_ref_array( 'posts_where_request',   array( $where, &$this ) );
     2326            $groupby    = apply_filters_ref_array( 'posts_groupby_request',     array( $groupby, &$this ) );
     2327            $join       = apply_filters_ref_array( 'posts_join_request',    array( $join, &$this ) );
     2328            $orderby    = apply_filters_ref_array( 'posts_orderby_request',     array( $orderby, &$this ) );
     2329            $distinct   = apply_filters_ref_array( 'posts_distinct_request',    array( $distinct, &$this ) );
     2330            $fields     = apply_filters_ref_array( 'posts_fields_request',      array( $fields, &$this ) );
     2331            $limits     = apply_filters_ref_array( 'post_limits_request',       array( $limits, &$this ) );
    23332332        }
    23342333
     
    23432342        $this->request = " SELECT $found_rows $distinct $fields FROM $wpdb->posts $join WHERE 1=1 $where $groupby $orderby $limits";
    23442343        if ( !$q['suppress_filters'] )
    2345             $this->request = apply_filters('posts_request', $this->request);
     2344            $this->request = apply_filters_ref_array('posts_request', array( $this->request, &$this ) );
    23462345
    23472346        $this->posts = $wpdb->get_results($this->request);
    23482347        // Raw results filter.  Prior to status checks.
    23492348        if ( !$q['suppress_filters'] )
    2350             $this->posts = apply_filters('posts_results', $this->posts);
     2349            $this->posts = apply_filters_ref_array('posts_results', array( $this->posts, &$this ) );
    23512350
    23522351        if ( !empty($this->posts) && $this->is_comment_feed && $this->is_singular ) {
    2353             $cjoin = apply_filters('comment_feed_join', '');
    2354             $cwhere = apply_filters('comment_feed_where', "WHERE comment_post_ID = '{$this->posts[0]->ID}' AND comment_approved = '1'");
    2355             $cgroupby = apply_filters('comment_feed_groupby', '');
     2352            $cjoin = apply_filters_ref_array('comment_feed_join', array( '', &$this ) );
     2353            $cwhere = apply_filters_ref_array('comment_feed_where', array( "WHERE comment_post_ID = '{$this->posts[0]->ID}' AND comment_approved = '1'", &$this ) );
     2354            $cgroupby = apply_filters_ref_array('comment_feed_groupby', array( '', &$this ) );
    23562355            $cgroupby = ( ! empty( $cgroupby ) ) ? 'GROUP BY ' . $cgroupby : '';
    2357             $corderby = apply_filters('comment_feed_orderby', 'comment_date_gmt DESC');
     2356            $corderby = apply_filters_ref_array('comment_feed_orderby', array( 'comment_date_gmt DESC', &$this ) );
    23582357            $corderby = ( ! empty( $corderby ) ) ? 'ORDER BY ' . $corderby : '';
    2359             $climits = apply_filters('comment_feed_limits', 'LIMIT ' . get_option('posts_per_rss'));
     2358            $climits = apply_filters_ref_array('comment_feed_limits', array( 'LIMIT ' . get_option('posts_per_rss'), &$this ) );
    23602359            $comments_request = "SELECT $wpdb->comments.* FROM $wpdb->comments $cjoin $cwhere $cgroupby $corderby $climits";
    23612360            $this->comments = $wpdb->get_results($comments_request);
     
    23642363
    23652364        if ( !$q['no_found_rows'] && !empty($limits) ) {
    2366             $found_posts_query = apply_filters( 'found_posts_query', 'SELECT FOUND_ROWS()' );
     2365            $found_posts_query = apply_filters_ref_array( 'found_posts_query', array( 'SELECT FOUND_ROWS()', &$this ) );
    23672366            $this->found_posts = $wpdb->get_var( $found_posts_query );
    2368             $this->found_posts = apply_filters( 'found_posts', $this->found_posts );
     2367            $this->found_posts = apply_filters_ref_array( 'found_posts', array( $this->found_posts, &$this ) );
    23692368            $this->max_num_pages = ceil($this->found_posts / $q['posts_per_page']);
    23702369        }
     
    23992398
    24002399            if ( $this->is_preview && current_user_can( $edit_cap, $this->posts[0]->ID ) )
    2401                 $this->posts[0] = apply_filters('the_preview', $this->posts[0]);
     2400                $this->posts[0] = apply_filters_ref_array('the_preview', array( $this->posts[0], &$this ));
    24022401        }
    24032402
     
    24482447
    24492448        if ( !$q['suppress_filters'] )
    2450             $this->posts = apply_filters('the_posts', $this->posts);
     2449            $this->posts = apply_filters_ref_array('the_posts', array( $this->posts, &$this ) );
    24512450
    24522451        $this->post_count = count($this->posts);
Note: See TracChangeset for help on using the changeset viewer.