Make WordPress Core

Ticket #7113: 7113.2.diff

File 7113.2.diff, 2.1 KB (added by DD32, 17 years ago)
  • wp-admin/includes/plugin.php

     
    3232}
    3333
    3434function get_plugins($plugin_folder = '') {
    35         global $wp_plugins;
    36 
    37         if ( isset( $wp_plugins ) ) {
    38                 return $wp_plugins;
    39         }
    40 
     35       
     36        if ( ! $cache_plugins = wp_cache_get('plugins', 'plugins') )
     37                $cached_plugins = array();
     38       
     39        if ( isset($cache_plugins[ $plugin_folder ]) )
     40                return $cache_plugins[ $plugin_folder ];
     41       
    4142        $wp_plugins = array ();
    4243        $plugin_root = WP_PLUGIN_DIR;
    4344        if( !empty($plugin_folder) )
     
    8586
    8687        uasort( $wp_plugins, create_function( '$a, $b', 'return strnatcasecmp( $a["Name"], $b["Name"] );' ));
    8788
     89        $cache_plugins[ $plugin_folder ] = $wp_plugins;
     90        wp_cache_set('plugins', $cache_plugins, 'plugins');
     91
    8892        return $wp_plugins;
    8993}
    9094
  • wp-admin/plugins.php

     
    8282                        $parent_file = 'plugins.php';
    8383
    8484                        $delete_result = delete_plugins($plugins);
    85                        
    86                         //HACK TIME!
    87                         // Proper way needed, perhaps get_plugins() to convert to wp_cache_get() any reason why it hasnt allready?
    88                         // This clears the cached plugin list
    89                         global $wp_plugins;
    90                         $wp_plugins = null;
    91                        
    92                        
    93                                
    94                         //TODO: Implement!.. STAT!
     85
     86                        wp_cache_delete('plugins', 'plugins');
     87
    9588                        break;
    9689                default:
    9790                        var_dump("Unknown Action $action");
  • wp-settings.php

     
    222222wp_cache_init();
    223223if ( function_exists('wp_cache_add_global_groups') ) {
    224224        wp_cache_add_global_groups(array ('users', 'userlogins', 'usermeta'));
    225         wp_cache_add_non_persistent_groups(array( 'comment', 'counts' ));
     225        wp_cache_add_non_persistent_groups(array( 'comment', 'counts', 'plugins' ));
    226226}
    227227
    228228require (ABSPATH . WPINC . '/plugin.php');