Skip to:
Content

bbPress.org


Ignore:
Timestamp:
07/14/2015 12:31:42 AM (11 years ago)
Author:
johnjamesjacoby
Message:

Abstraction: Use bbp_db(), bbp_rewrite() & friends, introduced in r5823 & r5826.

This commit improves the stability of bbPress in the WordPress environment by reducing global variable exposure. It also comes with minimal opcode improvements in some circumstances where $GLOBALS is preferred over defining via global statements.

Some additional surrounding cleanup directly related to functions & methods being altered is also being performed here.

Fixes #2786.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/includes/common/functions.php

    r5790 r5827  
    672672    }
    673673
    674     // Define global to use get_meta_sql() and get_var() methods
    675     global $wpdb;
    676 
    677674    // Parse arguments against default values
    678675    $r = bbp_parse_args( $post_data, array(
     
    685682    ), 'check_for_duplicate' );
    686683
     684    // Get the DB
     685    $bbp_db = bbp_db();
     686
    687687    // Check for anonymous post
    688688    if ( empty( $r['post_author'] ) && ( !empty( $r['anonymous_data'] ) && !empty( $r['anonymous_data']['bbp_anonymous_email'] ) ) ) {
     
    690690            'key'   => '_bbp_anonymous_email',
    691691            'value' => $r['anonymous_data']['bbp_anonymous_email']
    692         ) ), 'post', $wpdb->posts, 'ID' );
     692        ) ), 'post', $bbp_db->posts, 'ID' );
    693693
    694694        $join    = $clauses['join'];
     
    698698    }
    699699
    700     // Unslash $r to pass through $wpdb->prepare()
     700    // Unslash $r to pass through DB->prepare()
    701701    //
    702702    // @see: https://bbpress.trac.wordpress.org/ticket/2185/
     
    705705
    706706    // Prepare duplicate check query
    707     $query  = $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} {$join} WHERE post_type = %s AND post_status != %s AND post_author = %d AND post_content = %s {$where}", $r['post_type'], $r['post_status'], $r['post_author'], $r['post_content'] );
    708     $query .= !empty( $r['post_parent'] ) ? $wpdb->prepare( " AND post_parent = %d", $r['post_parent'] ) : '';
     707    $query  = $bbp_db->prepare( "SELECT ID FROM {$bbp_db->posts} {$join} WHERE post_type = %s AND post_status != %s AND post_author = %d AND post_content = %s {$where}", $r['post_type'], $r['post_status'], $r['post_author'], $r['post_content'] );
     708    $query .= !empty( $r['post_parent'] ) ? $bbp_db->prepare( " AND post_parent = %d", $r['post_parent'] ) : '';
    709709    $query .= " LIMIT 1";
    710710    $dupe   = apply_filters( 'bbp_check_for_duplicate_query', $query, $r );
    711711
    712     if ( $wpdb->get_var( $dupe ) ) {
     712    if ( $bbp_db->get_var( $dupe ) ) {
    713713        do_action( 'bbp_check_for_duplicate_trigger', $post_data );
    714714        return false;
     
    14511451 *
    14521452 * @since bbPress (r2996)
    1453  *
    1454  * @global DB $wpdb
     1453 * @deprecated bbPress (r5814)
     1454 *
    14551455 * @global WP $wp
    14561456 * @param string $where
     
    14591459 */
    14601460function bbp_query_post_parent__in( $where, $object = '' ) {
    1461     global $wpdb, $wp;
     1461    global $wp;
    14621462
    14631463    // Noop if WP core supports this already
     
    14761476    }
    14771477
     1478    // Get the DB
     1479    $bbp_db = bbp_db();
     1480
    14781481    // Including specific post_parent's
    14791482    if ( ! empty( $object->query_vars['post_parent__in'] ) ) {
    14801483        $ids    = implode( ',', wp_parse_id_list( $object->query_vars['post_parent__in'] ) );
    1481         $where .= " AND {$wpdb->posts}.post_parent IN ($ids)";
     1484        $where .= " AND {$bbp_db->posts}.post_parent IN ($ids)";
    14821485
    14831486    // Excluding specific post_parent's
    14841487    } elseif ( ! empty( $object->query_vars['post_parent__not_in'] ) ) {
    14851488        $ids    = implode( ',', wp_parse_id_list( $object->query_vars['post_parent__not_in'] ) );
    1486         $where .= " AND {$wpdb->posts}.post_parent NOT IN ($ids)";
     1489        $where .= " AND {$bbp_db->posts}.post_parent NOT IN ($ids)";
    14871490    }
    14881491
     
    15061509 */
    15071510function bbp_get_public_child_last_id( $parent_id = 0, $post_type = 'post' ) {
    1508     global $wpdb;
    15091511
    15101512    // Bail if nothing passed
     
    15281530        // Join post statuses together
    15291531        $post_status = "'" . implode( "', '", $post_status ) . "'";
    1530 
    1531         $child_id = (int) $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_parent = %d AND post_status IN ( {$post_status} ) AND post_type = '%s' ORDER BY ID DESC LIMIT 1;", $parent_id, $post_type ) );
     1532        $bbp_db      = bbp_db();
     1533        $query       = $bbp_db->prepare( "SELECT ID FROM {$bbp_db->posts} WHERE post_parent = %d AND post_status IN ( {$post_status} ) AND post_type = '%s' ORDER BY ID DESC LIMIT 1;", $parent_id, $post_type );
     1534        $child_id    = (int) $bbp_db->get_var( $query );
    15321535
    15331536        wp_cache_set( $cache_id, $child_id, 'bbpress_posts' );
     
    15571560 */
    15581561function bbp_get_public_child_count( $parent_id = 0, $post_type = 'post' ) {
    1559     global $wpdb;
    15601562
    15611563    // Bail if nothing passed
     
    15791581        // Join post statuses together
    15801582        $post_status = "'" . implode( "', '", $post_status ) . "'";
    1581 
    1582         $child_count = (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(ID) FROM {$wpdb->posts} WHERE post_parent = %d AND post_status IN ( {$post_status} ) AND post_type = '%s';", $parent_id, $post_type ) );
     1583        $bbp_db      = bbp_db();
     1584        $query       = $bbp_db->prepare( "SELECT COUNT(ID) FROM {$bbp_db->posts} WHERE post_parent = %d AND post_status IN ( {$post_status} ) AND post_type = '%s';", $parent_id, $post_type );
     1585        $child_count = (int) $bbp_db->get_var( $query );
    15831586
    15841587        wp_cache_set( $cache_id, $child_count, 'bbpress_posts' );
     
    16101613 */
    16111614function bbp_get_public_child_ids( $parent_id = 0, $post_type = 'post' ) {
    1612     global $wpdb;
    16131615
    16141616    // Bail if nothing passed
     
    16321634        // Join post statuses together
    16331635        $post_status = "'" . implode( "', '", $post_status ) . "'";
    1634 
    1635         $child_ids = (array) $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_parent = %d AND post_status IN ( {$post_status} ) AND post_type = '%s' ORDER BY ID DESC;", $parent_id, $post_type ) );
     1636        $bbp_db      = bbp_db();
     1637        $query       = $bbp_db->prepare( "SELECT ID FROM {$bbp_db->posts} WHERE post_parent = %d AND post_status IN ( {$post_status} ) AND post_type = '%s' ORDER BY ID DESC;", $parent_id, $post_type );
     1638        $child_ids   = (array) $bbp_db->get_col( $query );
    16361639
    16371640        wp_cache_set( $cache_id, $child_ids, 'bbpress_posts' );
     
    16701673 */
    16711674function bbp_get_all_child_ids( $parent_id = 0, $post_type = 'post' ) {
    1672     global $wpdb;
    16731675
    16741676    // Bail if nothing passed
     
    17121714        // Join post statuses together
    17131715        $post_status = "'" . implode( "', '", $post_status ) . "'";
    1714 
    1715         $child_ids = (array) $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_parent = %d AND post_status IN ( {$post_status} ) AND post_type = '%s' ORDER BY ID DESC;", $parent_id, $post_type ) );
     1716        $bbp_db      = bbp_db();
     1717        $query       = $bbp_db->prepare( "SELECT ID FROM {$bbp_db->posts} WHERE post_parent = %d AND post_status IN ( {$post_status} ) AND post_type = '%s' ORDER BY ID DESC;", $parent_id, $post_type );
     1718        $child_ids   = (array) $bbp_db->get_col( $query );
    17161719
    17171720        wp_cache_set( $cache_id, $child_ids, 'bbpress_posts' );
Note: See TracChangeset for help on using the changeset viewer.