WordPress.org

Make WordPress Core

Ticket #37699: 37699-composition.diff

File 37699-composition.diff, 62.5 KB (added by wonderboymusic, 3 years ago)
  • src/wp-includes/class-wp-comment-query.php

     
    142142        }
    143143
    144144        /**
     145         * @since 4.7.0
     146         * @access protected
     147         * @var wpdb
     148         */
     149        protected $db;
     150
     151        /**
    145152         * Constructor.
    146153         *
    147154         * Sets up the comment query, based on the query vars passed.
     
    260267         * }
    261268         */
    262269        public function __construct( $query = '' ) {
     270                $this->db = $GLOBALS['wpdb'];
     271
    263272                $this->query_var_defaults = array(
    264273                        'author_email' => '',
    265274                        'author_url' => '',
     
    363372         * @since 4.2.0
    364373         * @access public
    365374         *
    366          * @global wpdb $wpdb WordPress database abstraction object.
    367          *
    368375         * @return int|array List of comments or number of found comments if `$count` argument is true.
    369376         */
    370377        public function get_comments() {
    371                 global $wpdb;
    372 
    373378                $this->parse_query();
    374379
    375380                // Parse meta query
     
    388393                // Reparse query vars, in case they were modified in a 'pre_get_comments' callback.
    389394                $this->meta_query->parse_query_vars( $this->query_vars );
    390395                if ( ! empty( $this->meta_query->queries ) ) {
    391                         $this->meta_query_clauses = $this->meta_query->get_sql( 'comment', $wpdb->comments, 'comment_ID', $this );
     396                        $this->meta_query_clauses = $this->meta_query->get_sql( 'comment', $this->db->comments, 'comment_ID', $this );
    392397                }
    393398
    394399                // $args can include anything. Only use the args defined in the query_var_defaults to compute the key.
     
    480485         *
    481486         * @since 4.4.0
    482487         * @access protected
    483          *
    484          * @global wpdb $wpdb WordPress database abstraction object.
    485488         */
    486489        protected function get_comment_ids() {
    487                 global $wpdb;
    488 
    489490                // Assemble clauses related to 'comment_approved'.
    490491                $approved_clauses = array();
    491492
     
    514515                                                break;
    515516
    516517                                        default :
    517                                                 $status_clauses[] = $wpdb->prepare( "comment_approved = %s", $status );
     518                                                $status_clauses[] = $this->db->prepare( "comment_approved = %s", $status );
    518519                                                break;
    519520                                }
    520521                        }
     
    537538                        foreach ( $include_unapproved as $unapproved_identifier ) {
    538539                                // Numeric values are assumed to be user ids.
    539540                                if ( is_numeric( $unapproved_identifier ) ) {
    540                                         $approved_clauses[] = $wpdb->prepare( "( user_id = %d AND comment_approved = '0' )", $unapproved_identifier );
     541                                        $approved_clauses[] = $this->db->prepare( "( user_id = %d AND comment_approved = '0' )", $unapproved_identifier );
    541542
    542543                                // Otherwise we match against email addresses.
    543544                                } else {
    544                                         $approved_clauses[] = $wpdb->prepare( "( comment_author_email = %s AND comment_approved = '0' )", $unapproved_identifier );
     545                                        $approved_clauses[] = $this->db->prepare( "( comment_author_email = %s AND comment_approved = '0' )", $unapproved_identifier );
    545546                                }
    546547                        }
    547548                }
     
    600601
    601602                        // If no valid clauses were found, order by comment_date_gmt.
    602603                        if ( empty( $orderby_array ) ) {
    603                                 $orderby_array[] = "$wpdb->comments.comment_date_gmt $order";
     604                                $orderby_array[] = "{$this->db->comments}.comment_date_gmt $order";
    604605                        }
    605606
    606607                        // To ensure determinate sorting, always include a comment_ID clause.
     
    633634                                        $comment_ID_order = 'DESC';
    634635                                }
    635636
    636                                 $orderby_array[] = "$wpdb->comments.comment_ID $comment_ID_order";
     637                                $orderby_array[] = "{$this->db->comments}.comment_ID $comment_ID_order";
    637638                        }
    638639
    639640                        $orderby = implode( ', ', $orderby_array );
    640641                } else {
    641                         $orderby = "$wpdb->comments.comment_date_gmt $order";
     642                        $orderby = "{$this->db->comments}.comment_date_gmt $order";
    642643                }
    643644
    644645                $number = absint( $this->query_vars['number'] );
     
    655656                if ( $this->query_vars['count'] ) {
    656657                        $fields = 'COUNT(*)';
    657658                } else {
    658                         $fields = "$wpdb->comments.comment_ID";
     659                        $fields = "{$this->db->comments}.comment_ID";
    659660                }
    660661
    661662                $post_id = absint( $this->query_vars['post_id'] );
    662663                if ( ! empty( $post_id ) ) {
    663                         $this->sql_clauses['where']['post_id'] = $wpdb->prepare( 'comment_post_ID = %d', $post_id );
     664                        $this->sql_clauses['where']['post_id'] = $this->db->prepare( 'comment_post_ID = %d', $post_id );
    664665                }
    665666
    666667                // Parse comment IDs for an IN clause.
    667668                if ( ! empty( $this->query_vars['comment__in'] ) ) {
    668                         $this->sql_clauses['where']['comment__in'] = "$wpdb->comments.comment_ID IN ( " . implode( ',', wp_parse_id_list( $this->query_vars['comment__in'] ) ) . ' )';
     669                        $this->sql_clauses['where']['comment__in'] = "{$this->db->comments}.comment_ID IN ( " . implode( ',', wp_parse_id_list( $this->query_vars['comment__in'] ) ) . ' )';
    669670                }
    670671
    671672                // Parse comment IDs for a NOT IN clause.
    672673                if ( ! empty( $this->query_vars['comment__not_in'] ) ) {
    673                         $this->sql_clauses['where']['comment__not_in'] = "$wpdb->comments.comment_ID NOT IN ( " . implode( ',', wp_parse_id_list( $this->query_vars['comment__not_in'] ) ) . ' )';
     674                        $this->sql_clauses['where']['comment__not_in'] = "{$this->db->comments}.comment_ID NOT IN ( " . implode( ',', wp_parse_id_list( $this->query_vars['comment__not_in'] ) ) . ' )';
    674675                }
    675676
    676677                // Parse comment parent IDs for an IN clause.
     
    694695                }
    695696
    696697                if ( '' !== $this->query_vars['author_email'] ) {
    697                         $this->sql_clauses['where']['author_email'] = $wpdb->prepare( 'comment_author_email = %s', $this->query_vars['author_email'] );
     698                        $this->sql_clauses['where']['author_email'] = $this->db->prepare( 'comment_author_email = %s', $this->query_vars['author_email'] );
    698699                }
    699700
    700701                if ( '' !== $this->query_vars['author_url'] ) {
    701                         $this->sql_clauses['where']['author_url'] = $wpdb->prepare( 'comment_author_url = %s', $this->query_vars['author_url'] );
     702                        $this->sql_clauses['where']['author_url'] = $this->db->prepare( 'comment_author_url = %s', $this->query_vars['author_url'] );
    702703                }
    703704
    704705                if ( '' !== $this->query_vars['karma'] ) {
    705                         $this->sql_clauses['where']['karma'] = $wpdb->prepare( 'comment_karma = %d', $this->query_vars['karma'] );
     706                        $this->sql_clauses['where']['karma'] = $this->db->prepare( 'comment_karma = %d', $this->query_vars['karma'] );
    706707                }
    707708
    708709                // Filtering by comment_type: 'type', 'type__in', 'type__not_in'.
     
    733734                                                break;
    734735
    735736                                        default:
    736                                                 $comment_types[ $operator ][] = $wpdb->prepare( '%s', $type );
     737                                                $comment_types[ $operator ][] = $this->db->prepare( '%s', $type );
    737738                                                break;
    738739                                }
    739740                        }
     
    750751                }
    751752
    752753                if ( '' !== $parent ) {
    753                         $this->sql_clauses['where']['parent'] = $wpdb->prepare( 'comment_parent = %d', $parent );
     754                        $this->sql_clauses['where']['parent'] = $this->db->prepare( 'comment_parent = %d', $parent );
    754755                }
    755756
    756757                if ( is_array( $this->query_vars['user_id'] ) ) {
    757758                        $this->sql_clauses['where']['user_id'] = 'user_id IN (' . implode( ',', array_map( 'absint', $this->query_vars['user_id'] ) ) . ')';
    758759                } elseif ( '' !== $this->query_vars['user_id'] ) {
    759                         $this->sql_clauses['where']['user_id'] = $wpdb->prepare( 'user_id = %d', $this->query_vars['user_id'] );
     760                        $this->sql_clauses['where']['user_id'] = $this->db->prepare( 'user_id = %d', $this->query_vars['user_id'] );
    760761                }
    761762
    762763                // Falsy search strings are ignored.
     
    780781                        foreach ( $post_fields as $field_name => $field_value ) {
    781782                                // $field_value may be an array.
    782783                                $esses = array_fill( 0, count( (array) $field_value ), '%s' );
    783                                 $this->sql_clauses['where'][ $field_name ] = $wpdb->prepare( " {$wpdb->posts}.{$field_name} IN (" . implode( ',', $esses ) . ')', $field_value );
     784                                $this->sql_clauses['where'][ $field_name ] = $this->db->prepare( " {$this->db->posts}.{$field_name} IN (" . implode( ',', $esses ) . ')', $field_value );
    784785                        }
    785786                }
    786787
     
    801802                                $join_posts_table = true;
    802803
    803804                                $esses = array_fill( 0, count( $q_values ), '%s' );
    804                                 $this->sql_clauses['where'][ $field_name ] = $wpdb->prepare( " {$wpdb->posts}.{$field_name} IN (" . implode( ',', $esses ) . ")", $q_values );
     805                                $this->sql_clauses['where'][ $field_name ] = $this->db->prepare( " {$this->db->posts}.{$field_name} IN (" . implode( ',', $esses ) . ")", $q_values );
    805806                        }
    806807                }
    807808
     
    830831                $join = '';
    831832
    832833                if ( $join_posts_table ) {
    833                         $join .= "JOIN $wpdb->posts ON $wpdb->posts.ID = $wpdb->comments.comment_post_ID";
     834                        $join .= "JOIN {$this->db->posts} ON {$this->db->posts}.ID = {$this->db->comments}.comment_post_ID";
    834835                }
    835836
    836837                if ( ! empty( $this->meta_query_clauses ) ) {
     
    840841                        $this->sql_clauses['where']['meta_query'] = preg_replace( '/^\s*AND\s*/', '', $this->meta_query_clauses['where'] );
    841842
    842843                        if ( ! $this->query_vars['count'] ) {
    843                                 $groupby = "{$wpdb->comments}.comment_ID";
     844                                $groupby = "{$this->db->comments}.comment_ID";
    844845                        }
    845846                }
    846847
     
    889890                }
    890891
    891892                $this->sql_clauses['select']  = "SELECT $found_rows $fields";
    892                 $this->sql_clauses['from']    = "FROM $wpdb->comments $join";
     893                $this->sql_clauses['from']    = "FROM {$this->db->comments} $join";
    893894                $this->sql_clauses['groupby'] = $groupby;
    894895                $this->sql_clauses['orderby'] = $orderby;
    895896                $this->sql_clauses['limits']  = $limits;
     
    897898                $this->request = "{$this->sql_clauses['select']} {$this->sql_clauses['from']} {$where} {$this->sql_clauses['groupby']} {$this->sql_clauses['orderby']} {$this->sql_clauses['limits']}";
    898899
    899900                if ( $this->query_vars['count'] ) {
    900                         return intval( $wpdb->get_var( $this->request ) );
     901                        return intval( $this->db->get_var( $this->request ) );
    901902                } else {
    902                         $comment_ids = $wpdb->get_col( $this->request );
     903                        $comment_ids = $this->db->get_col( $this->request );
    903904                        return array_map( 'intval', $comment_ids );
    904905                }
    905906        }
     
    910911         *
    911912         * @since 4.6.0
    912913         * @access private
    913          *
    914          * @global wpdb $wpdb WordPress database abstraction object.
    915914         */
    916915        private function set_found_comments() {
    917                 global $wpdb;
    918 
    919916                if ( $this->query_vars['number'] && ! $this->query_vars['no_found_rows'] ) {
    920917                        /**
    921918                         * Filters the query used to retrieve found comment count.
     
    927924                         */
    928925                        $found_comments_query = apply_filters( 'found_comments_query', 'SELECT FOUND_ROWS()', $this );
    929926
    930                         $this->found_comments = (int) $wpdb->get_var( $found_comments_query );
     927                        $this->found_comments = (int) $this->db->get_var( $found_comments_query );
    931928                }
    932929        }
    933930
     
    943940         * @return array
    944941         */
    945942        protected function fill_descendants( $comments ) {
    946                 global $wpdb;
    947 
    948943                $levels = array(
    949944                        0 => wp_list_pluck( $comments, 'comment_ID' ),
    950945                );
     
    996991
    997992                        if ( $uncached_parent_ids ) {
    998993                                $where = 'WHERE ' . $_where . ' AND comment_parent IN (' . implode( ',', array_map( 'intval', $uncached_parent_ids ) ) . ')';
    999                                 $level_comments = $wpdb->get_results( "SELECT $wpdb->comments.comment_ID, $wpdb->comments.comment_parent {$this->sql_clauses['from']} {$where} {$this->sql_clauses['groupby']} ORDER BY comment_date_gmt ASC, comment_ID ASC" );
     994                                $level_comments = $this->db->get_results( "SELECT {$this->db->comments}.comment_ID, {$this->db->comments}.comment_parent {$this->sql_clauses['from']} {$where} {$this->sql_clauses['groupby']} ORDER BY comment_date_gmt ASC, comment_ID ASC" );
    1000995
    1001996                                // Cache parent-child relationships.
    1002997                                $parent_map = array_fill_keys( $uncached_parent_ids, array() );
     
    10671062         * @since 3.1.0
    10681063         * @access protected
    10691064         *
    1070          * @global wpdb $wpdb WordPress database abstraction object.
    1071          *
    10721065         * @param string $string
    10731066         * @param array $cols
    10741067         * @return string
    10751068         */
    10761069        protected function get_search_sql( $string, $cols ) {
    1077                 global $wpdb;
     1070                $like = '%' . $this->db->esc_like( $string ) . '%';
    10781071
    1079                 $like = '%' . $wpdb->esc_like( $string ) . '%';
    1080 
    10811072                $searches = array();
    10821073                foreach ( $cols as $col ) {
    1083                         $searches[] = $wpdb->prepare( "$col LIKE %s", $like );
     1074                        $searches[] = $this->db->prepare( "$col LIKE %s", $like );
    10841075                }
    10851076
    10861077                return ' AND (' . implode(' OR ', $searches) . ')';
     
    10921083         * @since 4.2.0
    10931084         * @access protected
    10941085         *
    1095          * @global wpdb $wpdb WordPress database abstraction object.
    1096          *
    10971086         * @param string $orderby Alias for the field to order by.
    10981087         * @return string|false Value to used in the ORDER clause. False otherwise.
    10991088         */
    11001089        protected function parse_orderby( $orderby ) {
    1101                 global $wpdb;
    1102 
    11031090                $allowed_keys = array(
    11041091                        'comment_agent',
    11051092                        'comment_approved',
     
    11311118
    11321119                $parsed = false;
    11331120                if ( $orderby == $this->query_vars['meta_key'] || $orderby == 'meta_value' ) {
    1134                         $parsed = "$wpdb->commentmeta.meta_value";
     1121                        $parsed = "{$this->db->commentmeta}.meta_value";
    11351122                } elseif ( $orderby == 'meta_value_num' ) {
    1136                         $parsed = "$wpdb->commentmeta.meta_value+0";
     1123                        $parsed = "{$this->db->commentmeta}.meta_value+0";
    11371124                } elseif ( $orderby == 'comment__in' ) {
    11381125                        $comment__in = implode( ',', array_map( 'absint', $this->query_vars['comment__in'] ) );
    1139                         $parsed = "FIELD( {$wpdb->comments}.comment_ID, $comment__in )";
     1126                        $parsed = "FIELD( {$this->db->comments}.comment_ID, $comment__in )";
    11401127                } elseif ( in_array( $orderby, $allowed_keys ) ) {
    11411128
    11421129                        if ( isset( $meta_query_clauses[ $orderby ] ) ) {
     
    11431130                                $meta_clause = $meta_query_clauses[ $orderby ];
    11441131                                $parsed = sprintf( "CAST(%s.meta_value AS %s)", esc_sql( $meta_clause['alias'] ), esc_sql( $meta_clause['cast'] ) );
    11451132                        } else {
    1146                                 $parsed = "$wpdb->comments.$orderby";
     1133                                $parsed = "{$this->db->comments}.$orderby";
    11471134                        }
    11481135                }
    11491136
  • src/wp-includes/class-wp-meta-query.php

     
    106106        protected $has_or_relation = false;
    107107
    108108        /**
     109         * @since 4.7.0
     110         * @access protected
     111         * @var wpdb
     112         */
     113        protected $db;
     114
     115        /**
    109116         * Constructor.
    110117         *
    111118         * @since 3.2.0
     
    137144         * }
    138145         */
    139146        public function __construct( $meta_query = false ) {
    140                 if ( !$meta_query )
     147                $this->db = $GLOBALS['wpdb'];
     148
     149                if ( ! $meta_query ) {
    141150                        return;
     151                }
    142152
    143153                if ( isset( $meta_query['relation'] ) && strtoupper( $meta_query['relation'] ) == 'OR' ) {
    144154                        $this->relation = 'OR';
     
    484494         * @since 4.1.0
    485495         * @access public
    486496         *
    487          * @global wpdb $wpdb WordPress database abstraction object.
    488          *
    489497         * @param array  $clause       Query clause, passed by reference.
    490498         * @param array  $parent_query Parent query array.
    491499         * @param string $clause_key   Optional. The array key used to name the clause in the original `$meta_query`
     
    498506         * }
    499507         */
    500508        public function get_sql_for_clause( &$clause, $parent_query, $clause_key = '' ) {
    501                 global $wpdb;
    502 
    503509                $sql_chunks = array(
    504510                        'where' => array(),
    505511                        'join' => array(),
     
    537543                        if ( 'NOT EXISTS' === $meta_compare ) {
    538544                                $join .= " LEFT JOIN $this->meta_table";
    539545                                $join .= $i ? " AS $alias" : '';
    540                                 $join .= $wpdb->prepare( " ON ($this->primary_table.$this->primary_id_column = $alias.$this->meta_id_column AND $alias.meta_key = %s )", $clause['key'] );
     546                                $join .= $this->db->prepare( " ON ($this->primary_table.$this->primary_id_column = $alias.$this->meta_id_column AND $alias.meta_key = %s )", $clause['key'] );
    541547
    542548                        // All other JOIN clauses.
    543549                        } else {
     
    581587                        if ( 'NOT EXISTS' === $meta_compare ) {
    582588                                $sql_chunks['where'][] = $alias . '.' . $this->meta_id_column . ' IS NULL';
    583589                        } else {
    584                                 $sql_chunks['where'][] = $wpdb->prepare( "$alias.meta_key = %s", trim( $clause['key'] ) );
     590                                $sql_chunks['where'][] = $this->db->prepare( "$alias.meta_key = %s", trim( $clause['key'] ) );
    585591                        }
    586592                }
    587593
     
    601607                                case 'IN' :
    602608                                case 'NOT IN' :
    603609                                        $meta_compare_string = '(' . substr( str_repeat( ',%s', count( $meta_value ) ), 1 ) . ')';
    604                                         $where = $wpdb->prepare( $meta_compare_string, $meta_value );
     610                                        $where = $this->db->prepare( $meta_compare_string, $meta_value );
    605611                                        break;
    606612
    607613                                case 'BETWEEN' :
    608614                                case 'NOT BETWEEN' :
    609615                                        $meta_value = array_slice( $meta_value, 0, 2 );
    610                                         $where = $wpdb->prepare( '%s AND %s', $meta_value );
     616                                        $where = $this->db->prepare( '%s AND %s', $meta_value );
    611617                                        break;
    612618
    613619                                case 'LIKE' :
    614620                                case 'NOT LIKE' :
    615                                         $meta_value = '%' . $wpdb->esc_like( $meta_value ) . '%';
    616                                         $where = $wpdb->prepare( '%s', $meta_value );
     621                                        $meta_value = '%' . $this->db->esc_like( $meta_value ) . '%';
     622                                        $where = $this->db->prepare( '%s', $meta_value );
    617623                                        break;
    618624
    619625                                // EXISTS with a value is interpreted as '='.
    620626                                case 'EXISTS' :
    621627                                        $meta_compare = '=';
    622                                         $where = $wpdb->prepare( '%s', $meta_value );
     628                                        $where = $this->db->prepare( '%s', $meta_value );
    623629                                        break;
    624630
    625631                                // 'value' is ignored for NOT EXISTS.
     
    628634                                        break;
    629635
    630636                                default :
    631                                         $where = $wpdb->prepare( '%s', $meta_value );
     637                                        $where = $this->db->prepare( '%s', $meta_value );
    632638                                        break;
    633639
    634640                        }
  • src/wp-includes/class-wp-network-query.php

     
    8787        public $max_num_pages = 0;
    8888
    8989        /**
     90         * @since 4.7.0
     91         * @access protected
     92         * @var wpdb
     93         */
     94        protected $db;
     95
     96        /**
    9097         * Constructor.
    9198         *
    9299         * Sets up the network query, based on the query vars passed.
     
    124131         * }
    125132         */
    126133        public function __construct( $query = '' ) {
     134                $this->db = $GLOBALS['wpdb'];
     135
    127136                $this->query_var_defaults = array(
    128137                        'network__in'          => '',
    129138                        'network__not_in'      => '',
     
    290299         * @return int|array A single count of network IDs if a count query. An array of network IDs if a full query.
    291300         */
    292301        protected function get_network_ids() {
    293                 global $wpdb;
    294 
    295302                $order = $this->parse_order( $this->query_vars['order'] );
    296303
    297304                // Disable ORDER BY with 'none', an empty array, or boolean false.
     
    332339
    333340                        $orderby = implode( ', ', $orderby_array );
    334341                } else {
    335                         $orderby = "$wpdb->site.id $order";
     342                        $orderby = "{$this->db->site}.id $order";
    336343                }
    337344
    338345                $number = absint( $this->query_vars['number'] );
     
    349356                if ( $this->query_vars['count'] ) {
    350357                        $fields = 'COUNT(*)';
    351358                } else {
    352                         $fields = "$wpdb->site.id";
     359                        $fields = "{$this->db->site}.id";
    353360                }
    354361
    355362                // Parse network IDs for an IN clause.
    356363                if ( ! empty( $this->query_vars['network__in'] ) ) {
    357                         $this->sql_clauses['where']['network__in'] = "$wpdb->site.id IN ( " . implode( ',', wp_parse_id_list( $this->query_vars['network__in'] ) ) . ' )';
     364                        $this->sql_clauses['where']['network__in'] = "{$this->db->site}.id IN ( " . implode( ',', wp_parse_id_list( $this->query_vars['network__in'] ) ) . ' )';
    358365                }
    359366
    360367                // Parse network IDs for a NOT IN clause.
    361368                if ( ! empty( $this->query_vars['network__not_in'] ) ) {
    362                         $this->sql_clauses['where']['network__not_in'] = "$wpdb->site.id NOT IN ( " . implode( ',', wp_parse_id_list( $this->query_vars['network__not_in'] ) ) . ' )';
     369                        $this->sql_clauses['where']['network__not_in'] = "{$this->db->site}.id NOT IN ( " . implode( ',', wp_parse_id_list( $this->query_vars['network__not_in'] ) ) . ' )';
    363370                }
    364371
    365372                if ( ! empty( $this->query_vars['domain'] ) ) {
    366                         $this->sql_clauses['where']['domain'] = $wpdb->prepare( "$wpdb->site.domain = %s", $this->query_vars['domain'] );
     373                        $this->sql_clauses['where']['domain'] = $this->db->prepare( "{$this->db->site}.domain = %s", $this->query_vars['domain'] );
    367374                }
    368375
    369376                // Parse network domain for an IN clause.
    370377                if ( is_array( $this->query_vars['domain__in'] ) ) {
    371                         $this->sql_clauses['where']['domain__in'] = "$wpdb->site.domain IN ( '" . implode( "', '", $wpdb->_escape( $this->query_vars['domain__in'] ) ) . "' )";
     378                        $this->sql_clauses['where']['domain__in'] = "{$this->db->site}.domain IN ( '" . implode( "', '", $this->db->_escape( $this->query_vars['domain__in'] ) ) . "' )";
    372379                }
    373380
    374381                // Parse network domain for a NOT IN clause.
    375382                if ( is_array( $this->query_vars['domain__not_in'] ) ) {
    376                         $this->sql_clauses['where']['domain__not_in'] = "$wpdb->site.domain NOT IN ( '" . implode( "', '", $wpdb->_escape( $this->query_vars['domain__not_in'] ) ) . "' )";
     383                        $this->sql_clauses['where']['domain__not_in'] = "{$this->db->site}.domain NOT IN ( '" . implode( "', '", $this->db->_escape( $this->query_vars['domain__not_in'] ) ) . "' )";
    377384                }
    378385
    379386                if ( ! empty( $this->query_vars['path'] ) ) {
    380                         $this->sql_clauses['where']['path'] = $wpdb->prepare( "$wpdb->site.path = %s", $this->query_vars['path'] );
     387                        $this->sql_clauses['where']['path'] = $this->db->prepare( "{$this->db->site}.path = %s", $this->query_vars['path'] );
    381388                }
    382389
    383390                // Parse network path for an IN clause.
    384391                if ( is_array( $this->query_vars['path__in'] ) ) {
    385                         $this->sql_clauses['where']['path__in'] = "$wpdb->site.path IN ( '" . implode( "', '", $wpdb->_escape( $this->query_vars['path__in'] ) ) . "' )";
     392                        $this->sql_clauses['where']['path__in'] = "{$this->db->site}.path IN ( '" . implode( "', '", $this->db->_escape( $this->query_vars['path__in'] ) ) . "' )";
    386393                }
    387394
    388395                // Parse network path for a NOT IN clause.
    389396                if ( is_array( $this->query_vars['path__not_in'] ) ) {
    390                         $this->sql_clauses['where']['path__not_in'] = "$wpdb->site.path NOT IN ( '" . implode( "', '", $wpdb->_escape( $this->query_vars['path__not_in'] ) ) . "' )";
     397                        $this->sql_clauses['where']['path__not_in'] = "{$this->db->site}.path NOT IN ( '" . implode( "', '", $this->db->_escape( $this->query_vars['path__not_in'] ) ) . "' )";
    391398                }
    392399
    393400                // Falsey search strings are ignored.
     
    394401                if ( strlen( $this->query_vars['search'] ) ) {
    395402                        $this->sql_clauses['where']['search'] = $this->get_search_sql(
    396403                                $this->query_vars['search'],
    397                                 array( "$wpdb->site.domain", "$wpdb->site.path" )
     404                                array( "{$this->db->site}.domain", "{$this->db->site}.path" )
    398405                        );
    399406                }
    400407
     
    439446                }
    440447
    441448                $this->sql_clauses['select']  = "SELECT $found_rows $fields";
    442                 $this->sql_clauses['from']    = "FROM $wpdb->site $join";
     449                $this->sql_clauses['from']    = "FROM {$this->db->site} $join";
    443450                $this->sql_clauses['groupby'] = $groupby;
    444451                $this->sql_clauses['orderby'] = $orderby;
    445452                $this->sql_clauses['limits']  = $limits;
     
    447454                $this->request = "{$this->sql_clauses['select']} {$this->sql_clauses['from']} {$where} {$this->sql_clauses['groupby']} {$this->sql_clauses['orderby']} {$this->sql_clauses['limits']}";
    448455
    449456                if ( $this->query_vars['count'] ) {
    450                         return intval( $wpdb->get_var( $this->request ) );
     457                        return intval( $this->db->get_var( $this->request ) );
    451458                }
    452459
    453                 $network_ids = $wpdb->get_col( $this->request );
     460                $network_ids = $this->db->get_col( $this->request );
    454461
    455462                return array_map( 'intval', $network_ids );
    456463        }
     
    461468         *
    462469         * @since 4.6.0
    463470         * @access private
    464          *
    465          * @global wpdb $wpdb WordPress database abstraction object.
    466471         */
    467472        private function set_found_networks() {
    468                 global $wpdb;
    469 
    470473                if ( $this->query_vars['number'] && ! $this->query_vars['no_found_rows'] ) {
    471474                        /**
    472475                         * Filters the query used to retrieve found network count.
     
    478481                         */
    479482                        $found_networks_query = apply_filters( 'found_networks_query', 'SELECT FOUND_ROWS()', $this );
    480483
    481                         $this->found_networks = (int) $wpdb->get_var( $found_networks_query );
     484                        $this->found_networks = (int) $this->db->get_var( $found_networks_query );
    482485                }
    483486        }
    484487
     
    488491         * @since 4.6.0
    489492         * @access protected
    490493         *
    491          * @global wpdb  $wpdb WordPress database abstraction object.
    492          *
    493494         * @param string $string  Search string.
    494495         * @param array  $columns Columns to search.
    495496         *
     
    496497         * @return string Search SQL.
    497498         */
    498499        protected function get_search_sql( $string, $columns ) {
    499                 global $wpdb;
     500                $like = '%' . $this->db->esc_like( $string ) . '%';
    500501
    501                 $like = '%' . $wpdb->esc_like( $string ) . '%';
    502 
    503502                $searches = array();
    504503                foreach ( $columns as $column ) {
    505                         $searches[] = $wpdb->prepare( "$column LIKE %s", $like );
     504                        $searches[] = $this->db->prepare( "$column LIKE %s", $like );
    506505                }
    507506
    508507                return '(' . implode( ' OR ', $searches ) . ')';
     
    514513         * @since 4.6.0
    515514         * @access protected
    516515         *
    517          * @global wpdb $wpdb WordPress database abstraction object.
    518          *
    519516         * @param string $orderby Alias for the field to order by.
    520517         * @return string|false Value to used in the ORDER clause. False otherwise.
    521518         */
    522519        protected function parse_orderby( $orderby ) {
    523                 global $wpdb;
    524 
    525520                $allowed_keys = array(
    526521                        'id',
    527522                        'domain',
     
    531526                $parsed = false;
    532527                if ( $orderby == 'network__in' ) {
    533528                        $network__in = implode( ',', array_map( 'absint', $this->query_vars['network__in'] ) );
    534                         $parsed = "FIELD( {$wpdb->site}.id, $network__in )";
     529                        $parsed = "FIELD( {$this->db->site}.id, $network__in )";
    535530                } elseif ( $orderby == 'domain_length' || $orderby == 'path_length' ) {
    536531                        $field = substr( $orderby, 0, -7 );
    537                         $parsed = "CHAR_LENGTH($wpdb->site.$field)";
     532                        $parsed = "CHAR_LENGTH({$this->db->site}.$field)";
    538533                } elseif ( in_array( $orderby, $allowed_keys ) ) {
    539                         $parsed = "$wpdb->site.$orderby";
     534                        $parsed = "{$this->db->site}.$orderby";
    540535                }
    541536
    542537                return $parsed;
  • src/wp-includes/class-wp-site-query.php

     
    9696        public $max_num_pages = 0;
    9797
    9898        /**
     99         * @since 4.7.0
     100         * @access protected
     101         * @var wpdb
     102         */
     103        protected $db;
     104
     105        /**
    99106         * Sets up the site query, based on the query vars passed.
    100107         *
    101108         * @since 4.6.0
     
    147154         * }
    148155         */
    149156        public function __construct( $query = '' ) {
     157                $this->db = $GLOBALS['wpdb'];
     158
    150159                $this->query_var_defaults = array(
    151160                        'fields'            => '',
    152161                        'ID'                => '',
     
    325334         * @since 4.6.0
    326335         * @access protected
    327336         *
    328          * @global wpdb $wpdb WordPress database abstraction object.
    329          *
    330337         * @return int|array A single count of site IDs if a count query. An array of site IDs if a full query.
    331338         */
    332339        protected function get_site_ids() {
    333                 global $wpdb;
    334 
    335340                $order = $this->parse_order( $this->query_vars['order'] );
    336341
    337342                // Disable ORDER BY with 'none', an empty array, or boolean false.
     
    395400                // Parse site IDs for an IN clause.
    396401                $site_id = absint( $this->query_vars['ID'] );
    397402                if ( ! empty( $site_id ) ) {
    398                         $this->sql_clauses['where']['ID'] = $wpdb->prepare( 'blog_id = %d', $site_id );
     403                        $this->sql_clauses['where']['ID'] = $this->db->prepare( 'blog_id = %d', $site_id );
    399404                }
    400405
    401406                // Parse site IDs for an IN clause.
     
    411416                $network_id = absint( $this->query_vars['network_id'] );
    412417
    413418                if ( ! empty( $network_id ) ) {
    414                         $this->sql_clauses['where']['network_id'] = $wpdb->prepare( 'site_id = %d', $network_id );
     419                        $this->sql_clauses['where']['network_id'] = $this->db->prepare( 'site_id = %d', $network_id );
    415420                }
    416421
    417422                // Parse site network IDs for an IN clause.
     
    425430                }
    426431
    427432                if ( ! empty( $this->query_vars['domain'] ) ) {
    428                         $this->sql_clauses['where']['domain'] = $wpdb->prepare( 'domain = %s', $this->query_vars['domain'] );
     433                        $this->sql_clauses['where']['domain'] = $this->db->prepare( 'domain = %s', $this->query_vars['domain'] );
    429434                }
    430435
    431436                // Parse site domain for an IN clause.
    432437                if ( is_array( $this->query_vars['domain__in'] ) ) {
    433                         $this->sql_clauses['where']['domain__in'] = "domain IN ( '" . implode( "', '", $wpdb->_escape( $this->query_vars['domain__in'] ) ) . "' )";
     438                        $this->sql_clauses['where']['domain__in'] = "domain IN ( '" . implode( "', '", $this->db->_escape( $this->query_vars['domain__in'] ) ) . "' )";
    434439                }
    435440
    436441                // Parse site domain for a NOT IN clause.
    437442                if ( is_array( $this->query_vars['domain__not_in'] ) ) {
    438                         $this->sql_clauses['where']['domain__not_in'] = "domain NOT IN ( '" . implode( "', '", $wpdb->_escape( $this->query_vars['domain__not_in'] ) ) . "' )";
     443                        $this->sql_clauses['where']['domain__not_in'] = "domain NOT IN ( '" . implode( "', '", $this->db->_escape( $this->query_vars['domain__not_in'] ) ) . "' )";
    439444                }
    440445
    441446                if ( ! empty( $this->query_vars['path'] ) ) {
    442                         $this->sql_clauses['where']['path'] = $wpdb->prepare( 'path = %s', $this->query_vars['path'] );
     447                        $this->sql_clauses['where']['path'] = $this->db->prepare( 'path = %s', $this->query_vars['path'] );
    443448                }
    444449
    445450                // Parse site path for an IN clause.
    446451                if ( is_array( $this->query_vars['path__in'] ) ) {
    447                         $this->sql_clauses['where']['path__in'] = "path IN ( '" . implode( "', '", $wpdb->_escape( $this->query_vars['path__in'] ) ) . "' )";
     452                        $this->sql_clauses['where']['path__in'] = "path IN ( '" . implode( "', '", $this->db->_escape( $this->query_vars['path__in'] ) ) . "' )";
    448453                }
    449454
    450455                // Parse site path for a NOT IN clause.
    451456                if ( is_array( $this->query_vars['path__not_in'] ) ) {
    452                         $this->sql_clauses['where']['path__not_in'] = "path NOT IN ( '" . implode( "', '", $wpdb->_escape( $this->query_vars['path__not_in'] ) ) . "' )";
     457                        $this->sql_clauses['where']['path__not_in'] = "path NOT IN ( '" . implode( "', '", $this->db->_escape( $this->query_vars['path__not_in'] ) ) . "' )";
    453458                }
    454459
    455460                if ( is_numeric( $this->query_vars['archived'] ) ) {
    456461                        $archived = absint( $this->query_vars['archived'] );
    457                         $this->sql_clauses['where']['archived'] = $wpdb->prepare( "archived = %d ", $archived );
     462                        $this->sql_clauses['where']['archived'] = $this->db->prepare( "archived = %d ", $archived );
    458463                }
    459464
    460465                if ( is_numeric( $this->query_vars['mature'] ) ) {
    461466                        $mature = absint( $this->query_vars['mature'] );
    462                         $this->sql_clauses['where']['mature'] = $wpdb->prepare( "mature = %d ", $mature );
     467                        $this->sql_clauses['where']['mature'] = $this->db->prepare( "mature = %d ", $mature );
    463468                }
    464469
    465470                if ( is_numeric( $this->query_vars['spam'] ) ) {
    466471                        $spam = absint( $this->query_vars['spam'] );
    467                         $this->sql_clauses['where']['spam'] = $wpdb->prepare( "spam = %d ", $spam );
     472                        $this->sql_clauses['where']['spam'] = $this->db->prepare( "spam = %d ", $spam );
    468473                }
    469474
    470475                if ( is_numeric( $this->query_vars['deleted'] ) ) {
    471476                        $deleted = absint( $this->query_vars['deleted'] );
    472                         $this->sql_clauses['where']['deleted'] = $wpdb->prepare( "deleted = %d ", $deleted );
     477                        $this->sql_clauses['where']['deleted'] = $this->db->prepare( "deleted = %d ", $deleted );
    473478                }
    474479
    475480                if ( is_numeric( $this->query_vars['public'] ) ) {
    476481                        $public = absint( $this->query_vars['public'] );
    477                         $this->sql_clauses['where']['public'] = $wpdb->prepare( "public = %d ", $public );
     482                        $this->sql_clauses['where']['public'] = $this->db->prepare( "public = %d ", $public );
    478483                }
    479484
    480485                // Falsey search strings are ignored.
     
    550555                }
    551556
    552557                $this->sql_clauses['select']  = "SELECT $found_rows $fields";
    553                 $this->sql_clauses['from']    = "FROM $wpdb->blogs $join";
     558                $this->sql_clauses['from']    = "FROM {$this->db->blogs} $join";
    554559                $this->sql_clauses['groupby'] = $groupby;
    555560                $this->sql_clauses['orderby'] = $orderby;
    556561                $this->sql_clauses['limits']  = $limits;
     
    558563                $this->request = "{$this->sql_clauses['select']} {$this->sql_clauses['from']} {$where} {$this->sql_clauses['groupby']} {$this->sql_clauses['orderby']} {$this->sql_clauses['limits']}";
    559564
    560565                if ( $this->query_vars['count'] ) {
    561                         return intval( $wpdb->get_var( $this->request ) );
     566                        return intval( $this->db->get_var( $this->request ) );
    562567                }
    563568
    564                 $site_ids = $wpdb->get_col( $this->request );
     569                $site_ids = $this->db->get_col( $this->request );
    565570
    566571                return array_map( 'intval', $site_ids );
    567572        }
     
    572577         *
    573578         * @since 4.6.0
    574579         * @access private
    575          *
    576          * @global wpdb $wpdb WordPress database abstraction object.
    577580         */
    578581        private function set_found_sites() {
    579                 global $wpdb;
    580 
    581582                if ( $this->query_vars['number'] && ! $this->query_vars['no_found_rows'] ) {
    582583                        /**
    583584                         * Filters the query used to retrieve found site count.
     
    589590                         */
    590591                        $found_sites_query = apply_filters( 'found_sites_query', 'SELECT FOUND_ROWS()', $this );
    591592
    592                         $this->found_sites = (int) $wpdb->get_var( $found_sites_query );
     593                        $this->found_sites = (int) $this->db->get_var( $found_sites_query );
    593594                }
    594595        }
    595596
     
    599600         * @since 4.6.0
    600601         * @access protected
    601602         *
    602          * @global wpdb  $wpdb WordPress database abstraction object.
    603          *
    604603         * @param string $string  Search string.
    605604         * @param array  $columns Columns to search.
    606605         * @return string Search SQL.
    607606         */
    608607        protected function get_search_sql( $string, $columns ) {
    609                 global $wpdb;
    610 
    611608                if ( false !== strpos( $string, '*' ) ) {
    612                         $like = '%' . implode( '%', array_map( array( $wpdb, 'esc_like' ), explode( '*', $string ) ) ) . '%';
     609                        $like = '%' . implode( '%', array_map( array( $this->db, 'esc_like' ), explode( '*', $string ) ) ) . '%';
    613610                } else {
    614                         $like = '%' . $wpdb->esc_like( $string ) . '%';
     611                        $like = '%' . $this->db->esc_like( $string ) . '%';
    615612                }
    616613
    617614                $searches = array();
    618615                foreach ( $columns as $column ) {
    619                         $searches[] = $wpdb->prepare( "$column LIKE %s", $like );
     616                        $searches[] = $this->db->prepare( "$column LIKE %s", $like );
    620617                }
    621618
    622619                return '(' . implode( ' OR ', $searches ) . ')';
     
    628625         * @since 4.6.0
    629626         * @access protected
    630627         *
    631          * @global wpdb $wpdb WordPress database abstraction object.
    632          *
    633628         * @param string $orderby Alias for the field to order by.
    634629         * @return string|false Value to used in the ORDER clause. False otherwise.
    635630         */
    636631        protected function parse_orderby( $orderby ) {
    637                 global $wpdb;
    638 
    639632                $parsed = false;
    640633
    641634                switch ( $orderby ) {
    642635                        case 'site__in':
    643636                                $site__in = implode( ',', array_map( 'absint', $this->query_vars['site__in'] ) );
    644                                 $parsed = "FIELD( {$wpdb->blogs}.blog_id, $site__in )";
     637                                $parsed = "FIELD( {$this->db->blogs}.blog_id, $site__in )";
    645638                                break;
    646639                        case 'network__in':
    647640                                $network__in = implode( ',', array_map( 'absint', $this->query_vars['network__in'] ) );
    648                                 $parsed = "FIELD( {$wpdb->blogs}.site_id, $network__in )";
     641                                $parsed = "FIELD( {$this->db->blogs}.site_id, $network__in )";
    649642                                break;
    650643                        case 'domain':
    651644                        case 'last_updated':
  • src/wp-includes/class-wp-tax-query.php

     
    9292        public $primary_id_column;
    9393
    9494        /**
     95         * @since 4.7.0
     96         * @access protected
     97         * @var wpdb
     98         */
     99        protected $db;
     100
     101        /**
    95102         * Constructor.
    96103         *
    97104         * @since 3.1.0
     
    119126         * }
    120127         */
    121128        public function __construct( $tax_query ) {
     129                $this->db = $GLOBALS['wpdb'];
     130
    122131                if ( isset( $tax_query['relation'] ) ) {
    123132                        $this->relation = $this->sanitize_relation( $tax_query['relation'] );
    124133                } else {
     
    387396         * @since 4.1.0
    388397         * @access public
    389398         *
    390          * @global wpdb $wpdb The WordPress database abstraction object.
    391          *
    392399         * @param array $clause       Query clause, passed by reference.
    393400         * @param array $parent_query Parent query array.
    394401         * @return array {
     
    399406         * }
    400407         */
    401408        public function get_sql_for_clause( &$clause, $parent_query ) {
    402                 global $wpdb;
    403 
    404409                $sql = array(
    405410                        'where' => array(),
    406411                        'join'  => array(),
     
    432437                        $alias = $this->find_compatible_table_alias( $clause, $parent_query );
    433438                        if ( false === $alias ) {
    434439                                $i = count( $this->table_aliases );
    435                                 $alias = $i ? 'tt' . $i : $wpdb->term_relationships;
     440                                $alias = $i ? 'tt' . $i : $this->db->term_relationships;
    436441
    437442                                // Store the alias as part of a flat array to build future iterators.
    438443                                $this->table_aliases[] = $alias;
     
    440445                                // Store the alias with this clause, so later siblings can use it.
    441446                                $clause['alias'] = $alias;
    442447
    443                                 $join .= " LEFT JOIN $wpdb->term_relationships";
     448                                $join .= " LEFT JOIN {$this->db->term_relationships}";
    444449                                $join .= $i ? " AS $alias" : '';
    445450                                $join .= " ON ($this->primary_table.$this->primary_id_column = $alias.object_id)";
    446451                        }
     
    458463
    459464                        $where = "$this->primary_table.$this->primary_id_column NOT IN (
    460465                                SELECT object_id
    461                                 FROM $wpdb->term_relationships
     466                                FROM {$this->db->term_relationships}
    462467                                WHERE term_taxonomy_id IN ($terms)
    463468                        )";
    464469
     
    474479
    475480                        $where = "(
    476481                                SELECT COUNT(1)
    477                                 FROM $wpdb->term_relationships
     482                                FROM {$this->db->term_relationships}
    478483                                WHERE term_taxonomy_id IN ($terms)
    479484                                AND object_id = $this->primary_table.$this->primary_id_column
    480485                        ) = $num_terms";
     
    481486
    482487                } elseif ( 'NOT EXISTS' === $operator || 'EXISTS' === $operator ) {
    483488
    484                         $where = $wpdb->prepare( "$operator (
     489                        $where = $this->db->prepare( "$operator (
    485490                                SELECT 1
    486                                 FROM $wpdb->term_relationships
    487                                 INNER JOIN $wpdb->term_taxonomy
    488                                 ON $wpdb->term_taxonomy.term_taxonomy_id = $wpdb->term_relationships.term_taxonomy_id
    489                                 WHERE $wpdb->term_taxonomy.taxonomy = %s
    490                                 AND $wpdb->term_relationships.object_id = $this->primary_table.$this->primary_id_column
     491                                FROM {$this->db->term_relationships}
     492                                INNER JOIN {$this->db->term_taxonomy}
     493                                ON {$this->db->term_taxonomy}.term_taxonomy_id = {$this->db->term_relationships}.term_taxonomy_id
     494                                WHERE {$this->db->term_taxonomy}.taxonomy = %s
     495                                AND {$this->db->term_relationships}.object_id = $this->primary_table.$this->primary_id_column
    491496                        )", $clause['taxonomy'] );
    492497
    493498                }
     
    597602         *
    598603         * @since 3.2.0
    599604         *
    600          * @global wpdb $wpdb The WordPress database abstraction object.
    601          *
    602605         * @param array  $query           The single query. Passed by reference.
    603606         * @param string $resulting_field The resulting field. Accepts 'slug', 'name', 'term_taxonomy_id',
    604607         *                                or 'term_id'. Default 'term_id'.
    605608         */
    606609        public function transform_query( &$query, $resulting_field ) {
    607                 global $wpdb;
    608 
    609610                if ( empty( $query['terms'] ) )
    610611                        return;
    611612
     
    628629
    629630                                $terms = implode( ",", $query['terms'] );
    630631
    631                                 $terms = $wpdb->get_col( "
    632                                         SELECT $wpdb->term_taxonomy.$resulting_field
    633                                         FROM $wpdb->term_taxonomy
    634                                         INNER JOIN $wpdb->terms USING (term_id)
     632                                $terms = $this->db->get_col( "
     633                                        SELECT {$this->db->term_taxonomy}.$resulting_field
     634                                        FROM {$this->db->term_taxonomy}
     635                                        INNER JOIN {$this->db->terms} USING (term_id)
    635636                                        WHERE taxonomy = '{$query['taxonomy']}'
    636                                         AND $wpdb->terms.{$query['field']} IN ($terms)
     637                                        AND {$this->db->terms}.{$query['field']} IN ($terms)
    637638                                " );
    638639                                break;
    639640                        case 'term_taxonomy_id':
    640641                                $terms = implode( ',', array_map( 'intval', $query['terms'] ) );
    641                                 $terms = $wpdb->get_col( "
     642                                $terms = $this->db->get_col( "
    642643                                        SELECT $resulting_field
    643                                         FROM $wpdb->term_taxonomy
     644                                        FROM {$this->db->term_taxonomy}
    644645                                        WHERE term_taxonomy_id IN ($terms)
    645646                                " );
    646647                                break;
    647648                        default:
    648649                                $terms = implode( ',', array_map( 'intval', $query['terms'] ) );
    649                                 $terms = $wpdb->get_col( "
     650                                $terms = $this->db->get_col( "
    650651                                        SELECT $resulting_field
    651                                         FROM $wpdb->term_taxonomy
     652                                        FROM {$this->db->term_taxonomy}
    652653                                        WHERE taxonomy = '{$query['taxonomy']}'
    653654                                        AND term_id IN ($terms)
    654655                                " );
  • src/wp-includes/class-wp-term-query.php

     
    8787        public $terms;
    8888
    8989        /**
     90         * @since 4.7.0
     91         * @access protected
     92         * @var wpdb
     93         */
     94        protected $db;
     95
     96        /**
    9097         * Constructor.
    9198         *
    9299         * Sets up the term query, based on the query vars passed.
     
    172179         * }
    173180         */
    174181        public function __construct( $query = '' ) {
     182                $this->db = $GLOBALS['wpdb'];
     183
    175184                $this->query_var_defaults = array(
    176185                        'taxonomy'               => null,
    177186                        'orderby'                => 'name',
     
    293302         * @param 4.6.0
    294303         * @access public
    295304         *
    296          * @global wpdb $wpdb WordPress database abstraction object.
    297          *
    298305         * @return array
    299306         */
    300307        public function get_terms() {
    301                 global $wpdb;
    302 
    303308                $this->parse_query( $this->query_vars );
    304309                $args = $this->query_vars;
    305310
     
    486491                                $tt_ids = implode( ',', array_map( 'intval', $args['term_taxonomy_id'] ) );
    487492                                $this->sql_clauses['where']['term_taxonomy_id'] = "tt.term_taxonomy_id IN ({$tt_ids})";
    488493                        } else {
    489                                 $this->sql_clauses['where']['term_taxonomy_id'] = $wpdb->prepare( "tt.term_taxonomy_id = %d", $args['term_taxonomy_id'] );
     494                                $this->sql_clauses['where']['term_taxonomy_id'] = $this->db->prepare( "tt.term_taxonomy_id = %d", $args['term_taxonomy_id'] );
    490495                        }
    491496                }
    492497
    493498                if ( ! empty( $args['name__like'] ) ) {
    494                         $this->sql_clauses['where']['name__like'] = $wpdb->prepare( "t.name LIKE %s", '%' . $wpdb->esc_like( $args['name__like'] ) . '%' );
     499                        $this->sql_clauses['where']['name__like'] = $this->db->prepare( "t.name LIKE %s", '%' . $this->db->esc_like( $args['name__like'] ) . '%' );
    495500                }
    496501
    497502                if ( ! empty( $args['description__like'] ) ) {
    498                         $this->sql_clauses['where']['description__like'] = $wpdb->prepare( "tt.description LIKE %s", '%' . $wpdb->esc_like( $args['description__like'] ) . '%' );
     503                        $this->sql_clauses['where']['description__like'] = $this->db->prepare( "tt.description LIKE %s", '%' . $this->db->esc_like( $args['description__like'] ) . '%' );
    499504                }
    500505
    501506                if ( '' !== $parent ) {
     
    591596                 */
    592597                $fields = implode( ', ', apply_filters( 'get_terms_fields', $selects, $args, $taxonomies ) );
    593598
    594                 $join .= " INNER JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id";
     599                $join .= " INNER JOIN {$this->db->term_taxonomy} AS tt ON t.term_id = tt.term_id";
    595600
    596601                $where = implode( ' AND ', $this->sql_clauses['where'] );
    597602
     
    621626                }
    622627
    623628                $this->sql_clauses['select']  = "SELECT $distinct $fields";
    624                 $this->sql_clauses['from']    = "FROM $wpdb->terms AS t $join";
     629                $this->sql_clauses['from']    = "FROM {$this->db->terms} AS t $join";
    625630                $this->sql_clauses['orderby'] = $orderby ? "$orderby $order" : '';
    626631                $this->sql_clauses['limits']  = $limits;
    627632
     
    646651                }
    647652
    648653                if ( 'count' == $_fields ) {
    649                         return $wpdb->get_var( $this->request );
     654                        return $this->db->get_var( $this->request );
    650655                }
    651656
    652                 $terms = $wpdb->get_results( $this->request );
     657                $terms = $this->db->get_results( $this->request );
    653658                if ( 'all' == $_fields ) {
    654659                        update_term_cache( $terms );
    655660                }
     
    753758         * @since 4.6.0
    754759         * @access protected
    755760         *
    756          * @global wpdb $wpdb WordPress database abstraction object.
    757          *
    758761         * @param string $orderby_raw Alias for the field to order by.
    759762         * @return string|false Value to used in the ORDER clause. False otherwise.
    760763         */
     
    894897         * @since 4.6.0
    895898         * @access protected
    896899         *
    897          * @global wpdb $wpdb WordPress database abstraction object.
    898          *
    899900         * @param string $string
    900901         * @return string
    901902         */
    902903        protected function get_search_sql( $string ) {
    903                 global $wpdb;
     904                $like = '%' . $this->db->esc_like( $string ) . '%';
    904905
    905                 $like = '%' . $wpdb->esc_like( $string ) . '%';
    906 
    907                 return $wpdb->prepare( '((t.name LIKE %s) OR (t.slug LIKE %s))', $like, $like );
     906                return $this->db->prepare( '((t.name LIKE %s) OR (t.slug LIKE %s))', $like, $like );
    908907        }
    909908}
  • src/wp-includes/class-wp-user-query.php

     
    7171        public $query_limit;
    7272
    7373        /**
     74         * @since 4.7.0
     75         * @access protected
     76         * @var wpdb
     77         */
     78        protected $db;
     79
     80        /**
    7481         * PHP5 constructor.
    7582         *
    7683         * @since 3.1.0
     
    7885         * @param null|string|array $query Optional. The query variables.
    7986         */
    8087        public function __construct( $query = null ) {
     88                $this->db = $GLOBALS['wpdb'];
     89
    8190                if ( ! empty( $query ) ) {
    8291                        $this->prepare_query( $query );
    8392                        $this->query();
     
    134143         *
    135144         * @access public
    136145         *
    137          * @global wpdb $wpdb WordPress database abstraction object.
    138146         * @global int  $blog_id
    139147         *
    140148         * @param string|array $query {
     
    198206         * }
    199207         */
    200208        public function prepare_query( $query = array() ) {
    201                 global $wpdb;
    202 
    203209                if ( empty( $this->query_vars ) || ! empty( $query ) ) {
    204210                        $this->query_limit = null;
    205211                        $this->query_vars = $this->fill_query_vars( $query );
     
    228234                        $this->query_fields = array();
    229235                        foreach ( $qv['fields'] as $field ) {
    230236                                $field = 'ID' === $field ? 'ID' : sanitize_key( $field );
    231                                 $this->query_fields[] = "$wpdb->users.$field";
     237                                $this->query_fields[] = "{$this->db->users}.$field";
    232238                        }
    233239                        $this->query_fields = implode( ',', $this->query_fields );
    234240                } elseif ( 'all' == $qv['fields'] ) {
    235                         $this->query_fields = "$wpdb->users.*";
     241                        $this->query_fields = "{$this->db->users}.*";
    236242                } else {
    237                         $this->query_fields = "$wpdb->users.ID";
     243                        $this->query_fields = "{$this->db->users}.ID";
    238244                }
    239245
    240246                if ( isset( $qv['count_total'] ) && $qv['count_total'] )
    241247                        $this->query_fields = 'SQL_CALC_FOUND_ROWS ' . $this->query_fields;
    242248
    243                 $this->query_from = "FROM $wpdb->users";
     249                $this->query_from = "FROM {$this->db->users}";
    244250                $this->query_where = "WHERE 1=1";
    245251
    246252                // Parse and sanitize 'include', for use by 'orderby' as well as 'include' below.
     
    263269                        }
    264270
    265271                        foreach ( $post_types as &$post_type ) {
    266                                 $post_type = $wpdb->prepare( '%s', $post_type );
     272                                $post_type = $this->db->prepare( '%s', $post_type );
    267273                        }
    268274
    269                         $posts_table = $wpdb->get_blog_prefix( $blog_id ) . 'posts';
    270                         $this->query_where .= " AND $wpdb->users.ID IN ( SELECT DISTINCT $posts_table.post_author FROM $posts_table WHERE $posts_table.post_status = 'publish' AND $posts_table.post_type IN ( " . join( ", ", $post_types ) . " ) )";
     275                        $posts_table = $this->db->get_blog_prefix( $blog_id ) . 'posts';
     276                        $this->query_where .= " AND {$this->db->users}.ID IN ( SELECT DISTINCT $posts_table.post_author FROM $posts_table WHERE $posts_table.post_status = 'publish' AND $posts_table.post_type IN ( " . join( ", ", $post_types ) . " ) )";
    271277                }
    272278
    273279                // Meta query.
     
    276282
    277283                if ( isset( $qv['who'] ) && 'authors' == $qv['who'] && $blog_id ) {
    278284                        $who_query = array(
    279                                 'key' => $wpdb->get_blog_prefix( $blog_id ) . 'user_level',
     285                                'key' => $this->db->get_blog_prefix( $blog_id ) . 'user_level',
    280286                                'value' => 0,
    281287                                'compare' => '!=',
    282288                        );
     
    323329                        if ( ! empty( $roles ) ) {
    324330                                foreach ( $roles as $role ) {
    325331                                        $roles_clauses[] = array(
    326                                                 'key'     => $wpdb->get_blog_prefix( $blog_id ) . 'capabilities',
     332                                                'key'     => $this->db->get_blog_prefix( $blog_id ) . 'capabilities',
    327333                                                'value'   => '"' . $role . '"',
    328334                                                'compare' => 'LIKE',
    329335                                        );
     
    336342                        if ( ! empty( $role__in ) ) {
    337343                                foreach ( $role__in as $role ) {
    338344                                        $role__in_clauses[] = array(
    339                                                 'key'     => $wpdb->get_blog_prefix( $blog_id ) . 'capabilities',
     345                                                'key'     => $this->db->get_blog_prefix( $blog_id ) . 'capabilities',
    340346                                                'value'   => '"' . $role . '"',
    341347                                                'compare' => 'LIKE',
    342348                                        );
     
    349355                        if ( ! empty( $role__not_in ) ) {
    350356                                foreach ( $role__not_in as $role ) {
    351357                                        $role__not_in_clauses[] = array(
    352                                                 'key'     => $wpdb->get_blog_prefix( $blog_id ) . 'capabilities',
     358                                                'key'     => $this->db->get_blog_prefix( $blog_id ) . 'capabilities',
    353359                                                'value'   => '"' . $role . '"',
    354360                                                'compare' => 'NOT LIKE',
    355361                                        );
     
    361367                        // If there are no specific roles named, make sure the user is a member of the site.
    362368                        if ( empty( $role_queries ) ) {
    363369                                $role_queries[] = array(
    364                                         'key' => $wpdb->get_blog_prefix( $blog_id ) . 'capabilities',
     370                                        'key' => $this->db->get_blog_prefix( $blog_id ) . 'capabilities',
    365371                                        'compare' => 'EXISTS',
    366372                                );
    367373                        }
     
    383389                }
    384390
    385391                if ( ! empty( $this->meta_query->queries ) ) {
    386                         $clauses = $this->meta_query->get_sql( 'user', $wpdb->users, 'ID', $this );
     392                        $clauses = $this->meta_query->get_sql( 'user', $this->db->users, 'ID', $this );
    387393                        $this->query_from .= $clauses['join'];
    388394                        $this->query_where .= $clauses['where'];
    389395
     
    441447                // limit
    442448                if ( isset( $qv['number'] ) && $qv['number'] > 0 ) {
    443449                        if ( $qv['offset'] ) {
    444                                 $this->query_limit = $wpdb->prepare("LIMIT %d, %d", $qv['offset'], $qv['number']);
     450                                $this->query_limit = $this->db->prepare("LIMIT %d, %d", $qv['offset'], $qv['number']);
    445451                        } else {
    446                                 $this->query_limit = $wpdb->prepare( "LIMIT %d, %d", $qv['number'] * ( $qv['paged'] - 1 ), $qv['number'] );
     452                                $this->query_limit = $this->db->prepare( "LIMIT %d, %d", $qv['number'] * ( $qv['paged'] - 1 ), $qv['number'] );
    447453                        }
    448454                }
    449455
     
    499505                if ( ! empty( $include ) ) {
    500506                        // Sanitized earlier.
    501507                        $ids = implode( ',', $include );
    502                         $this->query_where .= " AND $wpdb->users.ID IN ($ids)";
     508                        $this->query_where .= " AND {$this->db->users}.ID IN ($ids)";
    503509                } elseif ( ! empty( $qv['exclude'] ) ) {
    504510                        $ids = implode( ',', wp_parse_id_list( $qv['exclude'] ) );
    505                         $this->query_where .= " AND $wpdb->users.ID NOT IN ($ids)";
     511                        $this->query_where .= " AND {$this->db->users}.ID NOT IN ($ids)";
    506512                }
    507513
    508514                // Date queries are allowed for the user_registered field.
     
    530536         * Execute the query, with the current variables.
    531537         *
    532538         * @since 3.1.0
    533          *
    534          * @global wpdb $wpdb WordPress database abstraction object.
    535539         */
    536540        public function query() {
    537                 global $wpdb;
    538 
    539541                $qv =& $this->query_vars;
    540542
    541543                $this->request = "SELECT $this->query_fields $this->query_from $this->query_where $this->query_orderby $this->query_limit";
    542544
    543545                if ( is_array( $qv['fields'] ) || 'all' == $qv['fields'] ) {
    544                         $this->results = $wpdb->get_results( $this->request );
     546                        $this->results = $this->db->get_results( $this->request );
    545547                } else {
    546                         $this->results = $wpdb->get_col( $this->request );
     548                        $this->results = $this->db->get_col( $this->request );
    547549                }
    548550
    549551                /**
     
    551553                 *
    552554                 * @since 3.2.0
    553555                 *
    554                  * @global wpdb $wpdb WordPress database abstraction object.
    555                  *
    556556                 * @param string $sql The SELECT FOUND_ROWS() query for the current WP_User_Query.
    557557                 */
    558                 if ( isset( $qv['count_total'] ) && $qv['count_total'] )
    559                         $this->total_users = $wpdb->get_var( apply_filters( 'found_users_query', 'SELECT FOUND_ROWS()' ) );
     558                if ( isset( $qv['count_total'] ) && $qv['count_total'] ) {
     559                        $this->total_users = $this->db->get_var( apply_filters( 'found_users_query', 'SELECT FOUND_ROWS()' ) );
     560                }
    560561
    561                 if ( !$this->results )
     562                if ( ! $this->results ) {
    562563                        return;
     564                }
    563565
    564566                if ( 'all_with_meta' == $qv['fields'] ) {
    565567                        cache_users( $this->results );
     
    611613         * @access protected
    612614         * @since 3.1.0
    613615         *
    614          * @global wpdb $wpdb WordPress database abstraction object.
    615          *
    616616         * @param string $string
    617617         * @param array  $cols
    618618         * @param bool   $wild   Whether to allow wildcard searches. Default is false for Network Admin, true for single site.
     
    620620         * @return string
    621621         */
    622622        protected function get_search_sql( $string, $cols, $wild = false ) {
    623                 global $wpdb;
    624 
    625623                $searches = array();
    626624                $leading_wild = ( 'leading' == $wild || 'both' == $wild ) ? '%' : '';
    627625                $trailing_wild = ( 'trailing' == $wild || 'both' == $wild ) ? '%' : '';
    628                 $like = $leading_wild . $wpdb->esc_like( $string ) . $trailing_wild;
     626                $like = $leading_wild . $this->db->esc_like( $string ) . $trailing_wild;
    629627
    630628                foreach ( $cols as $col ) {
    631629                        if ( 'ID' == $col ) {
    632                                 $searches[] = $wpdb->prepare( "$col = %s", $string );
     630                                $searches[] = $this->db->prepare( "$col = %s", $string );
    633631                        } else {
    634                                 $searches[] = $wpdb->prepare( "$col LIKE %s", $like );
     632                                $searches[] = $this->db->prepare( "$col LIKE %s", $like );
    635633                        }
    636634                }
    637635
     
    668666         * @since 4.2.0
    669667         * @access protected
    670668         *
    671          * @global wpdb $wpdb WordPress database abstraction object.
    672          *
    673669         * @param string $orderby Alias for the field to order by.
    674670         * @return string Value to used in the ORDER clause, if `$orderby` is valid.
    675671         */
    676672        protected function parse_orderby( $orderby ) {
    677                 global $wpdb;
    678 
    679673                $meta_query_clauses = $this->meta_query->get_clauses();
    680674
    681675                $_orderby = '';
     
    690684                        $where = get_posts_by_author_sql( 'post' );
    691685                        $this->query_from .= " LEFT OUTER JOIN (
    692686                                SELECT post_author, COUNT(*) as post_count
    693                                 FROM $wpdb->posts
     687                                FROM {$this->db->posts}
    694688                                $where
    695689                                GROUP BY post_author
    696                         ) p ON ({$wpdb->users}.ID = p.post_author)
     690                        ) p ON ({$this->db->users}.ID = p.post_author)
    697691                        ";
    698692                        $_orderby = 'post_count';
    699693                } elseif ( 'ID' == $orderby || 'id' == $orderby ) {
    700694                        $_orderby = 'ID';
    701695                } elseif ( 'meta_value' == $orderby || $this->get( 'meta_key' ) == $orderby ) {
    702                         $_orderby = "$wpdb->usermeta.meta_value";
     696                        $_orderby = "{$this->db->usermeta}.meta_value";
    703697                } elseif ( 'meta_value_num' == $orderby ) {
    704                         $_orderby = "$wpdb->usermeta.meta_value+0";
     698                        $_orderby = "{$this->db->usermeta}.meta_value+0";
    705699                } elseif ( 'include' === $orderby && ! empty( $this->query_vars['include'] ) ) {
    706700                        $include = wp_parse_id_list( $this->query_vars['include'] );
    707701                        $include_sql = implode( ',', $include );
    708                         $_orderby = "FIELD( $wpdb->users.ID, $include_sql )";
     702                        $_orderby = "FIELD( {$this->db->users}.ID, $include_sql )";
    709703                } elseif ( isset( $meta_query_clauses[ $orderby ] ) ) {
    710704                        $meta_clause = $meta_query_clauses[ $orderby ];
    711705                        $_orderby = sprintf( "CAST(%s.meta_value AS %s)", esc_sql( $meta_clause['alias'] ), esc_sql( $meta_clause['cast'] ) );
  • src/wp-includes/class-wp-user.php

     
    102102        private static $back_compat_keys;
    103103
    104104        /**
     105         * @since 4.7.0
     106         * @access protected
     107         * @var wpdb
     108         */
     109        protected $db;
     110
     111        /**
    105112         * Constructor.
    106113         *
    107114         * Retrieves the userdata and passes it to WP_User::init().
     
    109116         * @since 2.0.0
    110117         * @access public
    111118         *
    112          * @global wpdb $wpdb WordPress database abstraction object.
    113          *
    114119         * @param int|string|stdClass|WP_User $id User's ID, a WP_User object, or a user object from the DB.
    115120         * @param string $name Optional. User's username
    116121         * @param int $blog_id Optional Site ID, defaults to current site.
    117122         */
    118123        public function __construct( $id = 0, $name = '', $blog_id = '' ) {
     124                $this->db = $GLOBALS['wpdb'];
     125
    119126                if ( ! isset( self::$back_compat_keys ) ) {
    120                         $prefix = $GLOBALS['wpdb']->prefix;
     127                        $prefix = $this->db->prefix;
    121128                        self::$back_compat_keys = array(
    122129                                'user_firstname' => 'first_name',
    123130                                'user_lastname' => 'last_name',
     
    232239                }
    233240
    234241                if ( !$user = $wpdb->get_row( $wpdb->prepare(
    235                         "SELECT * FROM $wpdb->users WHERE $db_field = %s", $value
    236                 ) ) )
     242                        "SELECT * FROM {$wpdb->users} WHERE $db_field = %s", $value
     243                ) ) ) {
    237244                        return false;
    238 
     245                }
    239246                update_user_caches( $user );
    240247
    241248                return $user;
     
    442449         * @access protected
    443450         * @since 2.1.0
    444451         *
    445          * @global wpdb $wpdb WordPress database abstraction object.
    446          *
    447452         * @param string $cap_key Optional capability key
    448453         */
    449454        protected function _init_caps( $cap_key = '' ) {
    450                 global $wpdb;
    451 
    452                 if ( empty($cap_key) )
    453                         $this->cap_key = $wpdb->get_blog_prefix() . 'capabilities';
    454                 else
     455                if ( empty( $cap_key ) ) {
     456                        $this->cap_key = $this->db->get_blog_prefix() . 'capabilities';
     457                } else {
    455458                        $this->cap_key = $cap_key;
    456 
     459                }
    457460                $this->caps = get_user_meta( $this->ID, $this->cap_key, true );
    458461
    459462                if ( ! is_array( $this->caps ) )
     
    631634         *
    632635         * @since 2.0.0
    633636         * @access public
    634          *
    635          * @global wpdb $wpdb WordPress database abstraction object.
    636637         */
    637638        public function update_user_level_from_caps() {
    638                 global $wpdb;
    639639                $this->user_level = array_reduce( array_keys( $this->allcaps ), array( $this, 'level_reduction' ), 0 );
    640                 update_user_meta( $this->ID, $wpdb->get_blog_prefix() . 'user_level', $this->user_level );
     640                update_user_meta( $this->ID, $this->db->get_blog_prefix() . 'user_level', $this->user_level );
    641641        }
    642642
    643643        /**
     
    679679         *
    680680         * @since 2.1.0
    681681         * @access public
    682          *
    683          * @global wpdb $wpdb WordPress database abstraction object.
    684682         */
    685683        public function remove_all_caps() {
    686                 global $wpdb;
    687684                $this->caps = array();
    688685                delete_user_meta( $this->ID, $this->cap_key );
    689                 delete_user_meta( $this->ID, $wpdb->get_blog_prefix() . 'user_level' );
     686                delete_user_meta( $this->ID, $this->db->get_blog_prefix() . 'user_level' );
    690687                $this->get_role_caps();
    691688        }
    692689
     
    772769         *
    773770         * @since 3.0.0
    774771         *
    775          * @global wpdb $wpdb WordPress database abstraction object.
    776          *
    777772         * @param int $blog_id Optional. Site ID, defaults to current site.
    778773         */
    779774        public function for_blog( $blog_id = '' ) {
    780                 global $wpdb;
    781                 if ( ! empty( $blog_id ) )
    782                         $cap_key = $wpdb->get_blog_prefix( $blog_id ) . 'capabilities';
    783                 else
     775                if ( ! empty( $blog_id ) ) {
     776                        $cap_key = $this->db->get_blog_prefix( $blog_id ) . 'capabilities';
     777                } else {
    784778                        $cap_key = '';
     779                }
    785780                $this->_init_caps( $cap_key );
    786781        }
    787782}
  • src/wp-includes/class-wp-xmlrpc-server.php

     
    5454        protected $auth_failed = false;
    5555
    5656        /**
     57         * @since 4.7.0
     58         * @access protected
     59         * @var wpdb
     60         */
     61        protected $db;
     62
     63        /**
    5764         * Registers all of the XMLRPC methods that XMLRPC server understands.
    5865         *
    5966         * Sets up server and method property. Passes XMLRPC
     
    6370         * @since 1.5.0
    6471         */
    6572        public function __construct() {
     73                $this->db = $GLOBALS['wpdb'];
     74
    6675                $this->methods = array(
    6776                        // WordPress API
    6877                        'wp.getUsersBlogs'              => 'this:wp_getUsersBlogs',
     
    28822891         *
    28832892         * @since 2.2.0
    28842893         *
    2885          * @global wpdb $wpdb WordPress database abstraction object.
    2886          *
    28872894         * @param array  $args {
    28882895         *     Method arguments. Note: arguments must be ordered as documented.
    28892896         *
     
    28942901         * @return array|IXR_Error
    28952902         */
    28962903        public function wp_getPageList( $args ) {
    2897                 global $wpdb;
    2898 
    28992904                $this->escape( $args );
    29002905
    29012906                $username = $args[1];
     
    29112916                do_action( 'xmlrpc_call', 'wp.getPageList' );
    29122917
    29132918                // Get list of pages ids and titles
    2914                 $page_list = $wpdb->get_results("
     2919                $page_list = $this->db->get_results("
    29152920                        SELECT ID page_id,
    29162921                                post_title page_title,
    29172922                                post_parent page_parent_id,
     
    29182923                                post_date_gmt,
    29192924                                post_date,
    29202925                                post_status
    2921                         FROM {$wpdb->posts}
     2926                        FROM {$this->db->posts}
    29222927                        WHERE post_type = 'page'
    29232928                        ORDER BY ID
    29242929                ");
     
    51305135         *
    51315136         * @since 2.1.0
    51325137         *
    5133          * @global wpdb $wpdb WordPress database abstraction object.
    5134          *
    51355138         * @param int $post_ID Post ID.
    51365139         * @param string $post_content Post Content for attachment.
    51375140         */
    51385141        public function attach_uploads( $post_ID, $post_content ) {
    5139                 global $wpdb;
    5140 
    51415142                // find any unattached files
    5142                 $attachments = $wpdb->get_results( "SELECT ID, guid FROM {$wpdb->posts} WHERE post_parent = '0' AND post_type = 'attachment'" );
     5143                $attachments = $this->db->get_results( "SELECT ID, guid FROM {$this->db->posts} WHERE post_parent = '0' AND post_type = 'attachment'" );
    51435144                if ( is_array( $attachments ) ) {
    51445145                        foreach ( $attachments as $file ) {
    5145                                 if ( ! empty( $file->guid ) && strpos( $post_content, $file->guid ) !== false )
    5146                                         $wpdb->update($wpdb->posts, array('post_parent' => $post_ID), array('ID' => $file->ID) );
     5146                                if ( ! empty( $file->guid ) && strpos( $post_content, $file->guid ) !== false ) {
     5147                                        $this->db->update( $this->db->posts, array( 'post_parent' => $post_ID ), array( 'ID' => $file->ID ) );
     5148                                }
    51475149                        }
    51485150                }
    51495151        }
     
    57635765         *
    57645766         * @since 1.5.0
    57655767         *
    5766          * @global wpdb $wpdb WordPress database abstraction object.
    5767          *
    57685768         * @param array  $args {
    57695769         *     Method arguments. Note: arguments must be ordered as documented.
    57705770         *
     
    57765776         * @return array|IXR_Error
    57775777         */
    57785778        public function mw_newMediaObject( $args ) {
    5779                 global $wpdb;
    5780 
    57815779                $username = $this->escape( $args[1] );
    57825780                $password = $this->escape( $args[2] );
    57835781                $data     = $args[3];
     
    61026100         *
    61036101         * @since 1.5.0
    61046102         *
    6105          * @global wpdb $wpdb WordPress database abstraction object.
    6106          *
    61076103         * @param int $post_ID
    61086104         * @return array|IXR_Error
    61096105         */
    61106106        public function mt_getTrackbackPings( $post_ID ) {
    6111                 global $wpdb;
    6112 
    61136107                /** This action is documented in wp-includes/class-wp-xmlrpc-server.php */
    61146108                do_action( 'xmlrpc_call', 'mt.getTrackbackPings' );
    61156109
     
    61186112                if ( !$actual_post )
    61196113                        return new IXR_Error(404, __('Sorry, no such post.'));
    61206114
    6121                 $comments = $wpdb->get_results( $wpdb->prepare("SELECT comment_author_url, comment_content, comment_author_IP, comment_type FROM $wpdb->comments WHERE comment_post_ID = %d", $post_ID) );
     6115                $comments = $this->db->get_results( $this->db->prepare("SELECT comment_author_url, comment_content, comment_author_IP, comment_type FROM {$this->db->comments} WHERE comment_post_ID = %d", $post_ID) );
    61226116
    61236117                if ( !$comments )
    61246118                        return array();
     
    61926186         *
    61936187         * @since 1.5.0
    61946188         *
    6195          * @global wpdb $wpdb WordPress database abstraction object.
    61966189         * @global string $wp_version
    61976190         *
    61986191         * @param array  $args {
     
    62046197         * @return string|IXR_Error
    62056198         */
    62066199        public function pingback_ping( $args ) {
    6207                 global $wpdb, $wp_version;
     6200                global $wp_version;
    62086201
    62096202                /** This action is documented in wp-includes/class-wp-xmlrpc-server.php */
    62106203                do_action( 'xmlrpc_call', 'pingback.ping' );
     
    62586251                        } elseif ( is_string($urltest['fragment']) ) {
    62596252                                // ...or a string #title, a little more complicated
    62606253                                $title = preg_replace('/[^a-z0-9]/i', '.', $urltest['fragment']);
    6261                                 $sql = $wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE post_title RLIKE %s", $title );
    6262                                 if (! ($post_ID = $wpdb->get_var($sql)) ) {
     6254                                $sql = $this->db->prepare("SELECT ID FROM {$this->db->posts} WHERE post_title RLIKE %s", $title );
     6255                                if (! ($post_ID = $this->db->get_var($sql)) ) {
    62636256                                        // returning unknown error '0' is better than die()ing
    62646257                                        return $this->pingback_error( 0, '' );
    62656258                                }
     
    62836276                        return $this->pingback_error( 33, __( 'The specified target URL cannot be used as a target. It either doesn’t exist, or it is not a pingback-enabled resource.' ) );
    62846277
    62856278                // Let's check that the remote site didn't already pingback this entry
    6286                 if ( $wpdb->get_results( $wpdb->prepare("SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND comment_author_url = %s", $post_ID, $pagelinkedfrom) ) )
     6279                if ( $this->db->get_results( $this->db->prepare("SELECT * FROM {$this->db->comments} WHERE comment_post_ID = %d AND comment_author_url = %s", $post_ID, $pagelinkedfrom) ) )
    62876280                        return $this->pingback_error( 48, __( 'The pingback has already been registered.' ) );
    62886281
    62896282                // very stupid, but gives time to the 'from' server to publish !
     
    64086401         *
    64096402         * @since 1.5.0
    64106403         *
    6411          * @global wpdb $wpdb WordPress database abstraction object.
    6412          *
    64136404         * @param string $url
    64146405         * @return array|IXR_Error
    64156406         */
    64166407        public function pingback_extensions_getPingbacks( $url ) {
    6417                 global $wpdb;
    6418 
    64196408                /** This action is documented in wp-includes/class-wp-xmlrpc-server.php */
    64206409                do_action( 'xmlrpc_call', 'pingback.extensions.getPingbacks' );
    64216410
     
    64346423                        return $this->pingback_error( 32, __('The specified target URL does not exist.' ) );
    64356424                }
    64366425
    6437                 $comments = $wpdb->get_results( $wpdb->prepare("SELECT comment_author_url, comment_content, comment_author_IP, comment_type FROM $wpdb->comments WHERE comment_post_ID = %d", $post_ID) );
     6426                $comments = $this->db->get_results( $this->db->prepare("SELECT comment_author_url, comment_content, comment_author_IP, comment_type FROM {$this->db->comments} WHERE comment_post_ID = %d", $post_ID) );
    64386427
    64396428                if ( !$comments )
    64406429                        return array();