Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
02/13/2015 05:24:33 PM (11 years ago)
Author:
boonebgorges
Message:

Cache the results of BP_Messages_Thread::get_recipients().

This can save a large number of queries on certain inbox views.

Props wpdennis.
See #6221. Fixes #6220.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-messages/bp-messages-cache.php

    r9351 r9482  
    8585add_action( 'messages_notice_after_save',    'bp_notices_clear_cache' );
    8686add_action( 'messages_notice_before_delete', 'bp_notices_clear_cache' );
     87
     88/**
     89 * Invalidate thread recipient cache on message update.
     90 *
     91 * @since BuddyPress (2.3.0)
     92 *
     93 * @param BP_Messages_Message $message Message object.
     94 */
     95function bp_messages_clear_message_thread_recipient_cache_on_message_sent( BP_Messages_Message $message ) {
     96        wp_cache_delete( 'thread_recipients_' . $message->thread_id, 'bp_messages' );
     97}
     98add_action( 'messages_message_sent', 'bp_messages_clear_message_thread_recipient_cache_on_message_sent' );
     99
     100/**
     101 * Invalidate thread recipient cache on thread deletion.
     102 *
     103 * @since BuddyPress (2.3.0)
     104 *
     105 * @param int|array $thread_ids IDs of deleted threads.
     106 */
     107function bp_messages_clear_message_thread_recipient_cache_on_thread_delete( $thread_ids ) {
     108        foreach ( (array) $thread_ids as $thread_id ) {
     109                wp_cache_delete( 'thread_recipients_' . $thread_id, 'bp_messages' );
     110        }
     111}
     112add_action( 'messages_delete_thread', 'bp_messages_clear_message_thread_recipient_cache_on_thread_delete' );
Note: See TracChangeset for help on using the changeset viewer.