Make WordPress Core

Changeset 32386


Ignore:
Timestamp:
05/06/2015 06:38:37 PM (11 years ago)
Author:
jorbin
Message:

When upgrading WordPress remove genericons example.html files

[32385] for 4.2 branch

Props @dd32, @boone, @johnjamesjacoby, @drewapicture, @jorbin

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/4.2/src/wp-admin/includes/update-core.php

    r32125 r32386  
    10511051        }
    10521052
     1053        // Remove any Genericons example.html's from the filesystem
     1054        _upgrade_422_remove_genericons();
     1055
    10531056        // Upgrade DB with separate request
    10541057        /** This filter is documented in wp-admin/includes/update-core.php */
     
    11891192}
    11901193add_action( '_core_updated_successfully', '_redirect_to_about_wordpress' );
     1194
     1195/**
     1196 * Cleans up Genericons example files.
     1197 *
     1198 * @since 4.2.2
     1199 */
     1200function _upgrade_422_remove_genericons() {
     1201        global $wp_theme_directories, $wp_filesystem;
     1202
     1203        // A list of the affected files using the filesystem absolute paths.
     1204        $affected_files = array();
     1205
     1206        // Themes
     1207        foreach ( $wp_theme_directories as $directory ) {
     1208                $affected_theme_files = _upgrade_422_find_genericons_files_in_folder( $directory );
     1209                $affected_files       = array_merge( $affected_files, $affected_theme_files );
     1210        }
     1211
     1212        // Plugins
     1213        $affected_plugin_files = _upgrade_422_find_genericons_files_in_folder( WP_PLUGIN_DIR );
     1214        $affected_files        = array_merge( $affected_files, $affected_plugin_files );
     1215
     1216        foreach ( $affected_files as $file ) {
     1217                $gen_dir = $wp_filesystem->find_folder( trailingslashit( dirname( $file ) ) );
     1218                if ( empty( $gen_dir ) ) {
     1219                        continue;
     1220                }
     1221
     1222                // The path when the file is accessed via WP_Filesystem may differ in the case of FTP
     1223                $remote_file = $gen_dir . basename( $file );
     1224
     1225                if ( ! $wp_filesystem->exists( $remote_file ) ) {
     1226                        continue;
     1227                }
     1228
     1229                if ( ! $wp_filesystem->delete( $remote_file, false, 'f' ) ) {
     1230                        $wp_filesystem->put_contents( $remote_file, '' );
     1231                }
     1232        }
     1233}
     1234
     1235/**
     1236 * Recursively find Genericons example files in a given folder.
     1237 *
     1238 * @ignore
     1239 * @since 4.2.2
     1240 *
     1241 * @param string $directory Directory path. Expects trailingslashed.
     1242 * @return array
     1243 */
     1244function _upgrade_422_find_genericons_files_in_folder( $directory ) {
     1245        $directory = trailingslashit( $directory );
     1246        $files     = array();
     1247
     1248        if ( file_exists( "{$directory}example.html" ) && false !== strpos( file_get_contents( "{$directory}example.html" ), '<title>Genericons</title>' ) ) {
     1249                $files[] = "{$directory}example.html";
     1250        }
     1251
     1252        foreach ( glob( $directory . '*', GLOB_ONLYDIR ) as $dir ) {
     1253                $files = array_merge( $files, _upgrade_422_find_genericons_files_in_folder( $dir ) );
     1254        }
     1255
     1256        return $files;
     1257}
Note: See TracChangeset for help on using the changeset viewer.