Suspend cache invalidation while importing posts with WP importer
git-svn-id: http://svn.automattic.com/wordpress/trunk@9106 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
cd7ea183e7
commit
9af33a74a9
|
@ -717,10 +717,12 @@ class WP_Import {
|
||||||
|
|
||||||
$this->import_start();
|
$this->import_start();
|
||||||
$this->get_authors_from_post();
|
$this->get_authors_from_post();
|
||||||
|
wp_suspend_cache_invalidation(true);
|
||||||
$this->get_entries();
|
$this->get_entries();
|
||||||
$this->process_categories();
|
$this->process_categories();
|
||||||
$this->process_tags();
|
$this->process_tags();
|
||||||
$result = $this->process_posts();
|
$result = $this->process_posts();
|
||||||
|
wp_suspend_cache_invalidation(false);
|
||||||
$this->backfill_parents();
|
$this->backfill_parents();
|
||||||
$this->backfill_attachment_urls();
|
$this->backfill_attachment_urls();
|
||||||
$this->import_end();
|
$this->import_end();
|
||||||
|
|
|
@ -2847,4 +2847,24 @@ function wp_guess_url() {
|
||||||
return $url;
|
return $url;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Suspend cache invalidation.
|
||||||
|
*
|
||||||
|
* Turns cache invalidation on and off. Useful during imports where you don't wont to do invalidations
|
||||||
|
* every time a post is inserted. Callers must be sure that what they are doing won't lead to an inconsistent
|
||||||
|
* cache when invalidation is suspended.
|
||||||
|
*
|
||||||
|
* @since 2.7.0
|
||||||
|
*
|
||||||
|
* @param bool $suspend Whether to suspend or enable cache invalidation
|
||||||
|
* @return bool The current suspend setting
|
||||||
|
*/
|
||||||
|
function wp_suspend_cache_invalidation($suspend = true) {
|
||||||
|
global $_wp_suspend_cache_invalidation;
|
||||||
|
|
||||||
|
$current_suspend = $_wp_suspend_cache_invalidation;
|
||||||
|
$_wp_suspend_cache_invalidation = $suspend;
|
||||||
|
return $current_suspend;
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -2861,7 +2861,11 @@ function update_post_cache(&$posts) {
|
||||||
* @param int $id The Post ID in the cache to clean
|
* @param int $id The Post ID in the cache to clean
|
||||||
*/
|
*/
|
||||||
function clean_post_cache($id) {
|
function clean_post_cache($id) {
|
||||||
global $wpdb;
|
global $_wp_suspend_cache_invalidation, $wpdb;
|
||||||
|
|
||||||
|
if ( !empty($_wp_suspend_cache_invalidation) )
|
||||||
|
return;
|
||||||
|
|
||||||
$id = (int) $id;
|
$id = (int) $id;
|
||||||
|
|
||||||
wp_cache_delete($id, 'posts');
|
wp_cache_delete($id, 'posts');
|
||||||
|
|
Loading…
Reference in New Issue