Make WordPress Core

Changeset 8521


Ignore:
Timestamp:
08/01/2008 08:59:44 PM (17 years ago)
Author:
ryan
Message:

Don't run get_plugins() on every admin page load. Use cron for async update plugin requests. see #7372 for 2.6

Location:
branches/2.6
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/2.6/wp-admin/includes/plugin.php

    r8500 r8521  
    3535   
    3636    if ( ! $cache_plugins = wp_cache_get('plugins', 'plugins') )
    37         $cached_plugins = array();
     37        $cache_plugins = array();
    3838   
    3939    if ( isset($cache_plugins[ $plugin_folder ]) )
  • branches/2.6/wp-includes/cron.php

    r5972 r8521  
    134134    $schedules = array(
    135135        'hourly' => array( 'interval' => 3600, 'display' => __('Once Hourly') ),
     136        'twicedaily' => array( 'interval' => 43200, 'display' => __('Twice Daily') ),
    136137        'daily' => array( 'interval' => 86400, 'display' => __('Once Daily') ),
    137138    );
  • branches/2.6/wp-includes/update.php

    r8360 r8521  
    9191        return false;
    9292
    93     $current = get_option( 'update_plugins' );
    94 
    95     $time_not_changed = isset( $current->last_checked ) && 43200 > ( time() - $current->last_checked );
    96 
    9793    // If running blog-side, bail unless we've not checked in the last 12 hours
    98     if ( !function_exists( 'get_plugins' ) ) {
    99         if ( $time_not_changed )
    100             return false;
     94    if ( !function_exists( 'get_plugins' ) )
    10195        require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
    102     }
    10396
    10497    $plugins = get_plugins();
    10598    $active  = get_option( 'active_plugins' );
     99    $current = get_option( 'update_plugins' );
    106100
    107101    $new_option = '';
    108102    $new_option->last_checked = time();
     103    $time_not_changed = isset( $current->last_checked ) && 43200 > ( time() - $current->last_checked );
    109104
    110105    $plugin_changed = false;
     
    161156    update_option( 'update_plugins', $new_option );
    162157}
    163 if ( defined( 'WP_ADMIN' ) && WP_ADMIN )
    164     add_action( 'admin_init', 'wp_update_plugins' );
    165 else
    166     add_action( 'init', 'wp_update_plugins' );
     158
     159function _maybe_update_plugins() {
     160    $current = get_option( 'update_plugins' );
     161    if ( isset( $current->last_checked ) && 43200 > ( time() - $current->last_checked ) )
     162        return;
     163    wp_update_plugins();
     164}
     165
     166add_action( 'load-plugins.php', 'wp_update_plugins' );
     167add_action( 'admin_init', '_maybe_update_plugins' );
     168add_action( 'wp_update_plugins', 'wp_update_plugins' );
     169
     170if ( !wp_next_scheduled('wp_update_plugins') )
     171    wp_schedule_event(time(), 'twicedaily', 'wp_update_plugins');
    167172
    168173?>
Note: See TracChangeset for help on using the changeset viewer.