Changeset 13396
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-activity/classes/class-bp-activity-activity.php
r13372 r13396 1050 1050 * @since 1.8.0 1051 1051 * 1052 * @global wpdb $wpdb WordPress database object. 1053 * 1052 1054 * @param array $meta_query An array of meta_query filters. See the 1053 1055 * documentation for WP_Meta_Query for details. … … 1057 1059 global $wpdb; 1058 1060 1061 // Default array keys & empty values. 1059 1062 $sql_array = array( 1060 1063 'join' => '', … … 1062 1065 ); 1063 1066 1064 if ( ! empty( $meta_query ) ) { 1065 $activity_meta_query = new WP_Meta_Query( $meta_query ); 1066 1067 // WP_Meta_Query expects the table name at 1068 // $wpdb->activitymeta. 1069 $wpdb->activitymeta = buddypress()->activity->table_name_meta; 1070 1071 $meta_sql = $activity_meta_query->get_sql( 'activity', 'a', 'id' ); 1072 1073 // Strip the leading AND - BP handles it in get(). 1074 $sql_array['where'] = preg_replace( '/^\sAND/', '', $meta_sql['where'] ); 1075 $sql_array['join'] = $meta_sql['join']; 1076 } 1067 // Bail if no meta query. 1068 if ( empty( $meta_query ) ) { 1069 return $sql_array; 1070 } 1071 1072 $bp = buddypress(); 1073 $activity_meta_query = new WP_Meta_Query( $meta_query ); 1074 1075 // WP_Meta_Query expects the table name at $wpdb->activitymeta. 1076 $wpdb->activitymeta = $bp->activity->table_name_meta; 1077 1078 $meta_sql = $activity_meta_query->get_sql( 'activity', 'a', 'id' ); 1079 1080 // Strip the leading AND - BP handles it in get(). 1081 $sql_array['where'] = preg_replace( '/^\sAND/', '', $meta_sql['where'] ); 1082 $sql_array['join'] = $meta_sql['join']; 1077 1083 1078 1084 return $sql_array; -
trunk/tests/phpunit/testcases/activity/class.BP_Activity_Activity.php
r13337 r13396 95 95 $a1 = self::factory()->activity->create(); 96 96 $a2 = self::factory()->activity->create(); 97 97 98 bp_activity_update_meta( $a1, 'foo', 'bar' ); 98 99 99 $activity = BP_Activity_Activity::get( array( 100 'meta_query' => array( 101 array( 102 'key' => 'foo', 103 'value' => 'bar', 104 ), 105 ), 106 ) ); 107 $ids = wp_list_pluck( $activity['activities'], 'id' ); 108 $this->assertEquals( $ids, array( $a1 ) ); 100 $activity = BP_Activity_Activity::get( 101 [ 102 'meta_query' => [ 103 [ 104 'key' => 'foo', 105 'compare' => 'EXISTS', 106 ], 107 ], 108 ] 109 ); 110 111 $this->assertEquals( [ $a1 ], wp_list_pluck( $activity['activities'], 'id' ) ); 112 113 $activity = BP_Activity_Activity::get( 114 [ 115 'meta_query' => [ 116 [ 117 'key' => 'foo', 118 'compare' => 'NOT EXISTS', 119 ], 120 ], 121 ] 122 ); 123 124 $this->assertEquals( [ $a2 ], wp_list_pluck( $activity['activities'], 'id' ) ); 109 125 } 110 126
Note: See TracChangeset
for help on using the changeset viewer.