Skip to:
Content

BuddyPress.org

Changeset 13902


Ignore:
Timestamp:
06/03/2024 08:27:09 PM (10 months ago)
Author:
imath
Message:

Blogs: slightly improve the query to get network sites

Only include the sql part to query according to site descriptions when needed: when a search is performed.

Props lenasterg

Fixes #9136
Closes https://github.com/buddypress/buddypress/pull/272

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-blogs/classes/class-bp-blogs-blog.php

    r13890 r13902  
    266266
    267267        if ( ! empty( $r['search_terms'] ) ) {
    268             $search_terms_like = '%' . bp_esc_like( $r['search_terms'] ) . '%';
    269             $search_terms_sql  = $wpdb->prepare( 'AND (bm_name.meta_value LIKE %s OR bm_description.meta_value LIKE %s)', $search_terms_like, $search_terms_like );
     268            $search_terms_left_join = 'LEFT JOIN ' . $bp->blogs->table_name_blogmeta . ' bm_description ON (b.blog_id = bm_description.blog_id)';
     269            $search_terms_like      = '%' . bp_esc_like( $r['search_terms'] ) . '%';
     270            $search_terms_sql       = $wpdb->prepare(
     271                'AND bm_description.meta_key = \'description\' AND (bm_name.meta_value LIKE %s OR bm_description.meta_value LIKE %s)',
     272                $search_terms_like,
     273                $search_terms_like
     274            );
    270275        } else {
    271             $search_terms_sql = '';
     276            $search_terms_left_join = '';
     277            $search_terms_sql       = '';
    272278        }
    273279
     
    278284              LEFT JOIN {$bp->blogs->table_name_blogmeta} bm ON (b.blog_id = bm.blog_id)
    279285              LEFT JOIN {$bp->blogs->table_name_blogmeta} bm_name ON (b.blog_id = bm_name.blog_id)
    280               LEFT JOIN {$bp->blogs->table_name_blogmeta} bm_description ON (b.blog_id = bm_description.blog_id)
     286              {$search_terms_left_join}
    281287              LEFT JOIN {$wpdb->base_prefix}blogs wb ON (b.blog_id = wb.blog_id)
    282288              LEFT JOIN {$wpdb->users} u ON (b.user_id = u.ID)
    283289            WHERE
    284290              wb.archived = '0' AND wb.spam = 0 AND wb.mature = 0 AND wb.deleted = 0 {$hidden_sql}
    285               AND bm.meta_key = 'last_activity' AND bm_name.meta_key = 'name' AND bm_description.meta_key = 'description'
     291              AND bm.meta_key = 'last_activity' AND bm_name.meta_key = 'name'
    286292              {$search_terms_sql} {$user_sql} {$include_sql} {$date_query_sql}
    287293            GROUP BY b.blog_id {$order_sql} {$pag_sql}
     
    295301              LEFT JOIN {$bp->blogs->table_name_blogmeta} bm ON (b.blog_id = bm.blog_id)
    296302              LEFT JOIN {$bp->blogs->table_name_blogmeta} bm_name ON (b.blog_id = bm_name.blog_id)
    297               LEFT JOIN {$bp->blogs->table_name_blogmeta} bm_description ON (b.blog_id = bm_description.blog_id)
     303              {$search_terms_left_join}
    298304            WHERE
    299305              wb.archived = '0' AND wb.spam = 0 AND wb.mature = 0 AND wb.deleted = 0 {$hidden_sql}
    300               AND bm.meta_key = 'last_activity' AND bm_name.meta_key = 'name' AND bm_description.meta_key = 'description'
     306              AND bm.meta_key = 'last_activity' AND bm_name.meta_key = 'name'
    301307              {$search_terms_sql} {$user_sql} {$include_sql} {$date_query_sql}
    302308        " );
Note: See TracChangeset for help on using the changeset viewer.