Make WordPress Core

Changeset 34598


Ignore:
Timestamp:
09/26/2015 03:49:06 PM (9 years ago)
Author:
ocean90
Message:

Plugins: Don't request all fields via plugins_api( 'plugin_information' ) for plugin installs and update checks.

The Plugins API returns a lot of data by default (see [34596]) but when installing or checking for updates we don't need all of it. To save bandwidth, memory and time request only required fields.

Fixes #34030.

Location:
trunk/src/wp-admin
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/update-core.php

    r34322 r34598  
    253253    <tbody class="plugins">
    254254<?php
    255     foreach ( (array) $plugins as $plugin_file => $plugin_data) {
    256         $info = plugins_api('plugin_information', array('slug' => $plugin_data->update->slug ));
     255    foreach ( (array) $plugins as $plugin_file => $plugin_data ) {
     256        $info = plugins_api( 'plugin_information', array(
     257            'slug' => $plugin_data->update->slug,
     258            'fields' => array(
     259                'short_description' => false,
     260                'sections' => false,
     261                'requires' => false,
     262                'rating' => false,
     263                'ratings' => false,
     264                'downloaded' => false,
     265                'downloadlink' => false,
     266                'last_updated' => false,
     267                'added' => false,
     268                'tags' => false,
     269                'homepage' => false,
     270                'donate_link' => false,
     271            ),
     272        ) );
     273
    257274        if ( is_wp_error( $info ) ) {
    258275            $info = false;
  • trunk/src/wp-admin/update.php

    r34265 r34598  
    9898        include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); //for plugins_api..
    9999
    100         check_admin_referer('install-plugin_' . $plugin);
    101         $api = plugins_api('plugin_information', array('slug' => $plugin, 'fields' => array('sections' => false) ) ); //Save on a bit of bandwidth.
    102 
    103         if ( is_wp_error($api) )
    104             wp_die($api);
     100        check_admin_referer( 'install-plugin_' . $plugin );
     101        $api = plugins_api( 'plugin_information', array(
     102            'slug' => $plugin,
     103            'fields' => array(
     104                'short_description' => false,
     105                'sections' => false,
     106                'requires' => false,
     107                'rating' => false,
     108                'ratings' => false,
     109                'downloaded' => false,
     110                'last_updated' => false,
     111                'added' => false,
     112                'tags' => false,
     113                'compatibility' => false,
     114                'homepage' => false,
     115                'donate_link' => false,
     116            ),
     117        ) );
     118
     119        if ( is_wp_error( $api ) ) {
     120            wp_die( $api );
     121        }
    105122
    106123        $title = __('Plugin Install');
Note: See TracChangeset for help on using the changeset viewer.