WordPress.org

Make WordPress Core

Ticket #10559: 10559.001.2.diff

File 10559.001.2.diff, 2.3 KB (added by aaroncampbell, 6 years ago)
  • trunk/wp-includes/functions.php

     
    20232023 * @uses apply_filters() Calls 'upload_dir' on returned array. 
    20242024 * 
    20252025 * @param string $time Optional. Time formatted in 'yyyy/mm'. 
     2026 * @param string $time Optional. Sub-directory to put files in. 
    20262027 * @return array See above for description. 
    20272028 */ 
    2028 function wp_upload_dir( $time = null ) { 
     2029function wp_upload_dir( $time = null, $subdir = '' ) { 
    20292030        $siteurl = get_option( 'siteurl' ); 
    20302031        $upload_path = get_option( 'upload_path' ); 
    20312032        $upload_path = trim($upload_path); 
     
    20522053        $bdir = $dir; 
    20532054        $burl = $url; 
    20542055 
    2055         $subdir = ''; 
     2056        if ( empty($subdir) || strpos($subdir, '..') !== false ) { 
     2057                $subdir = ''; 
     2058        } else { 
     2059                $subdir = '/' . trim( $subdir, '/' ); 
     2060        } 
    20562061        if ( get_option( 'uploads_use_yearmonth_folders' ) ) { 
    20572062                // Generate the yearly and monthly dirs 
    20582063                if ( !$time ) 
    20592064                        $time = current_time( 'mysql' ); 
    20602065                $y = substr( $time, 0, 4 ); 
    20612066                $m = substr( $time, 5, 2 ); 
    2062                 $subdir = "/$y/$m"; 
     2067                $subdir .= "/$y/$m"; 
    20632068        } 
    20642069 
    20652070        $dir .= $subdir; 
     
    32843289                        $display = $zone['t_continent']; 
    32853290                } else { 
    32863291                        // It's inside a continent group 
    3287                          
     3292 
    32883293                        // Continent optgroup 
    32893294                        if ( !isset( $zonen[$key - 1] ) || $zonen[$key - 1]['continent'] !== $zone['continent'] ) { 
    32903295                                $label = ( 'Etc' === $zone['continent'] ) ? __( 'Manual offsets' ) : $zone['t_continent']; 
    32913296                                $structure[] = '<optgroup label="'. esc_attr( $label ) .'">'; 
    32923297                        } 
    3293                          
     3298 
    32943299                        // Add the city to the value 
    32953300                        $value[] = $zone['city']; 
    32963301                        if ( 'Etc' === $zone['continent'] ) { 
     
    33183323                        $selected = 'selected="selected" '; 
    33193324                } 
    33203325                $structure[] = '<option ' . $selected . 'value="' . esc_attr( $value ) . '">' . esc_html( $display ) . "</option>"; 
    3321                  
     3326 
    33223327                // Close continent optgroup 
    33233328                if ( !empty( $zone['city'] ) && ( !isset($zonen[$key + 1]) || (isset( $zonen[$key + 1] ) && $zonen[$key + 1]['continent'] !== $zone['continent']) ) ) { 
    33243329                        $structure[] = '</optgroup>'; 
     
    33403345 
    33413346/** 
    33423347 * Permanently deletes posts, pages, attachments, and comments which have been in the trash for EMPTY_TRASH_DAYS. 
    3343  *  
     3348 * 
    33443349 * @since 2.9.0 
    33453350 * 
    33463351 * @return void