Clean attachment cache when reattaching, fixes #11647

git-svn-id: http://svn.automattic.com/wordpress/trunk@13192 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
azaozz 2010-02-18 07:43:35 +00:00
parent 0dcfcc6e20
commit e41f7c83ce
2 changed files with 36 additions and 0 deletions

View File

@ -43,6 +43,7 @@ if ( isset($_GET['find_detached']) ) {
continue;
$attach[] = $att_id;
clean_attachment_cache($att_id);
}
if ( ! empty($attach) ) {

View File

@ -3906,6 +3906,41 @@ function update_postmeta_cache($post_ids) {
return update_meta_cache('post', $post_ids);
}
/**
* Will clean the attachment in the cache.
*
* Cleaning means delete from the cache. Optionaly will clean the term
* object cache associated with the attachment ID.
*
* This function will not run if $_wp_suspend_cache_invalidation is not empty. See
* wp_suspend_cache_invalidation().
*
* @package WordPress
* @subpackage Cache
* @since 3.0
*
* @uses do_action() Calls 'clean_attachment_cache' on $id.
*
* @param int $id The attachment ID in the cache to clean
* @param bool $clean_terms optional. Whether to clean terms cache
*/
function clean_attachment_cache($id, $clean_terms = false) {
global $_wp_suspend_cache_invalidation, $wpdb;
if ( !empty($_wp_suspend_cache_invalidation) )
return;
$id = (int) $id;
wp_cache_delete($id, 'posts');
wp_cache_delete($id, 'post_meta');
if ( $clean_terms )
clean_object_term_cache($id, 'attachment');
do_action('clean_attachment_cache', $id);
}
//
// Hooks
//