WordPress.org

Make WordPress Core

Ticket #10559: 10559.001.diff

File 10559.001.diff, 2.1 KB (added by aaroncampbell, 5 years ago)
  • trunk/wp-includes/functions.php

     
    20252025 * @param string $time Optional. Time formatted in 'yyyy/mm'. 
    20262026 * @return array See above for description. 
    20272027 */ 
    2028 function wp_upload_dir( $time = null ) { 
     2028function wp_upload_dir( $time = null, $subdir = '' ) { 
    20292029        $siteurl = get_option( 'siteurl' ); 
    20302030        $upload_path = get_option( 'upload_path' ); 
    20312031        $upload_path = trim($upload_path); 
     
    20522052        $bdir = $dir; 
    20532053        $burl = $url; 
    20542054 
    2055         $subdir = ''; 
     2055        if ( empty($subdir) || strpos($subdir, '..') !== false ) { 
     2056                $subdir = ''; 
     2057        } else { 
     2058                $subdir = '/' . trim( $subdir, '/' ); 
     2059        } 
    20562060        if ( get_option( 'uploads_use_yearmonth_folders' ) ) { 
    20572061                // Generate the yearly and monthly dirs 
    20582062                if ( !$time ) 
    20592063                        $time = current_time( 'mysql' ); 
    20602064                $y = substr( $time, 0, 4 ); 
    20612065                $m = substr( $time, 5, 2 ); 
    2062                 $subdir = "/$y/$m"; 
     2066                $subdir .= "/$y/$m"; 
    20632067        } 
    20642068 
    20652069        $dir .= $subdir; 
     
    32843288                        $display = $zone['t_continent']; 
    32853289                } else { 
    32863290                        // It's inside a continent group 
    3287                          
     3291 
    32883292                        // Continent optgroup 
    32893293                        if ( !isset( $zonen[$key - 1] ) || $zonen[$key - 1]['continent'] !== $zone['continent'] ) { 
    32903294                                $label = ( 'Etc' === $zone['continent'] ) ? __( 'Manual offsets' ) : $zone['t_continent']; 
    32913295                                $structure[] = '<optgroup label="'. esc_attr( $label ) .'">'; 
    32923296                        } 
    3293                          
     3297 
    32943298                        // Add the city to the value 
    32953299                        $value[] = $zone['city']; 
    32963300                        if ( 'Etc' === $zone['continent'] ) { 
     
    33183322                        $selected = 'selected="selected" '; 
    33193323                } 
    33203324                $structure[] = '<option ' . $selected . 'value="' . esc_attr( $value ) . '">' . esc_html( $display ) . "</option>"; 
    3321                  
     3325 
    33223326                // Close continent optgroup 
    33233327                if ( !empty( $zone['city'] ) && ( !isset($zonen[$key + 1]) || (isset( $zonen[$key + 1] ) && $zonen[$key + 1]['continent'] !== $zone['continent']) ) ) { 
    33243328                        $structure[] = '</optgroup>'; 
     
    33403344 
    33413345/** 
    33423346 * Permanently deletes posts, pages, attachments, and comments which have been in the trash for EMPTY_TRASH_DAYS. 
    3343  *  
     3347 * 
    33443348 * @since 2.9.0 
    33453349 * 
    33463350 * @return void