Make WordPress Core

Changeset 8795


Ignore:
Timestamp:
09/01/2008 05:01:47 PM (18 years ago)
Author:
ryan
Message:

Suppress query filters when called from get_posts(). fixes #7326 #7457 for 2.6

Location:
branches/2.6/wp-includes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/2.6/wp-includes/post.php

    r8676 r8795  
    466466                'exclude' => '', 'meta_key' => '',
    467467                'meta_value' =>'', 'post_type' => 'post',
    468                 'post_parent' => 0
     468                'post_parent' => 0, 'suppress_filters' => true
    469469        );
    470470
  • branches/2.6/wp-includes/query.php

    r8559 r8795  
    776776                        $qv['post_status'] = preg_replace('|[^a-z0-9_,-]|', '', $qv['post_status']);
    777777
    778                 if ( $this->is_posts_page && !$qv['withcomments'] )
     778                if ( $this->is_posts_page && ( ! isset($qv['withcomments']) || ! $qv['withcomments'] ) )
    779779                        $this->is_comment_feed = false;
    780780
     
    830830                $search = '';
    831831                $groupby = '';
     832                $fields = "$wpdb->posts.*";
    832833                $post_status_join = false;
     834                $page = 1;
     835
     836                if ( !isset($q['suppress_filters']) )
     837                        $q['suppress_filters'] = false;
    833838
    834839                if ( !isset($q['post_type']) ) {
     
    13621367                // Apply filters on where and join prior to paging so that any
    13631368                // manipulations to them are reflected in the paging by day queries.
    1364                 $where = apply_filters('posts_where', $where);
    1365                 $join = apply_filters('posts_join', $join);
     1369                if ( !$q['suppress_filters'] ) {
     1370                        $where = apply_filters('posts_where', $where);
     1371                        $join = apply_filters('posts_join', $join);
     1372                }
    13661373
    13671374                // Paging
     
    13951402                        }
    13961403
    1397                         $cjoin = apply_filters('comment_feed_join', $cjoin);
    1398                         $cwhere = apply_filters('comment_feed_where', $cwhere);
    1399                         $cgroupby = apply_filters('comment_feed_groupby', $cgroupby);
     1404                        if ( !$q['suppress_filters'] ) {
     1405                                $cjoin = apply_filters('comment_feed_join', $cjoin);
     1406                                $cwhere = apply_filters('comment_feed_where', $cwhere);
     1407                                $cgroupby = apply_filters('comment_feed_groupby', $cgroupby);
     1408                        }
    14001409
    14011410                        $this->comments = (array) $wpdb->get_results("SELECT $distinct $wpdb->comments.* FROM $wpdb->comments $cjoin $cwhere $cgroupby ORDER BY comment_date_gmt DESC LIMIT " . get_option('posts_per_rss'));
     
    14151424                }
    14161425
     1426                $orderby = $q['orderby'];
     1427
    14171428                // Apply post-paging filters on where and join.  Only plugins that
    14181429                // manipulate paging queries should use these hooks.
    1419 
    1420                 $where = apply_filters('posts_where_paged', $where);
    1421                 $groupby = apply_filters('posts_groupby', $groupby);
    1422                 $join = apply_filters('posts_join_paged', $join);
    1423                 $orderby = apply_filters('posts_orderby', $q['orderby']);
    1424                 $distinct = apply_filters('posts_distinct', $distinct);
    1425                 $fields = apply_filters('posts_fields', "$wpdb->posts.*");
    1426                 $limits = apply_filters( 'post_limits', $limits );
     1430                if ( !$q['suppress_filters'] ) {
     1431                        $where = apply_filters('posts_where_paged', $where);
     1432                        $groupby = apply_filters('posts_groupby', $groupby);
     1433                        $join = apply_filters('posts_join_paged', $join);
     1434                        $orderby = apply_filters('posts_orderby', $orderby);
     1435                        $distinct = apply_filters('posts_distinct', $distinct);
     1436                        $fields = apply_filters('posts_fields', $fields);
     1437                        $limits = apply_filters( 'post_limits', $limits );
     1438                }
    14271439
    14281440                // Announce current selection parameters.  For use by caching plugins.
     
    14301442
    14311443                // Filter again for the benefit of caching plugins.  Regular plugins should use the hooks above.
    1432                 $where = apply_filters('posts_where_request', $where);
    1433                 $groupby = apply_filters('posts_groupby_request', $groupby);
    1434                 $join = apply_filters('posts_join_request', $join);
    1435                 $orderby = apply_filters('posts_orderby_request', $orderby);
    1436                 $distinct = apply_filters('posts_distinct_request', $distinct);
    1437                 $fields = apply_filters('posts_fields_request', $fields);
    1438                 $limits = apply_filters( 'post_limits_request', $limits );
     1444                if ( !$q['suppress_filters'] ) {
     1445                        $where = apply_filters('posts_where_request', $where);
     1446                        $groupby = apply_filters('posts_groupby_request', $groupby);
     1447                        $join = apply_filters('posts_join_request', $join);
     1448                        $orderby = apply_filters('posts_orderby_request', $orderby);
     1449                        $distinct = apply_filters('posts_distinct_request', $distinct);
     1450                        $fields = apply_filters('posts_fields_request', $fields);
     1451                        $limits = apply_filters( 'post_limits_request', $limits );
     1452                }
    14391453
    14401454                if ( ! empty($groupby) )
     
    14461460                        $found_rows = 'SQL_CALC_FOUND_ROWS';
    14471461
    1448                 $request = " SELECT $found_rows $distinct $fields FROM $wpdb->posts $join WHERE 1=1 $where $groupby $orderby $limits";
    1449                 $this->request = apply_filters('posts_request', $request);
     1462                $this->request = " SELECT $found_rows $distinct $fields FROM $wpdb->posts $join WHERE 1=1 $where $groupby $orderby $limits";
     1463                if ( !$q['suppress_filters'] )
     1464                        $this->request = apply_filters('posts_request', $this->request);
    14501465
    14511466                $this->posts = $wpdb->get_results($this->request);
    14521467                // Raw results filter.  Prior to status checks.
    1453                 $this->posts = apply_filters('posts_results', $this->posts);
     1468                if ( !$q['suppress_filters'] )
     1469                        $this->posts = apply_filters('posts_results', $this->posts);
    14541470
    14551471                if ( !empty($this->posts) && $this->is_comment_feed && $this->is_singular ) {
     
    14981514                }
    14991515
    1500                 $this->posts = apply_filters('the_posts', $this->posts);
     1516                if ( !$q['suppress_filters'] )
     1517                        $this->posts = apply_filters('the_posts', $this->posts);
    15011518
    15021519                update_post_caches($this->posts);
Note: See TracChangeset for help on using the changeset viewer.