mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-06-30 23:30:05 +00:00
Improve the performance of wp_upload_dir():
- Cache the output in non-persistent cache. - Cache the result from `wp_mkdir_p()` in persistent cache (when present). - Introduce `wp_get_upload_dir()` for use when not uploading files. It is equivalent to `wp_upload_dir()` but does not check for the existence or create the upload directory. - Change tests to use the non-cached `_wp_upload_dir()`. They change options on the fly (should never be used in production) to simulate different environments. - Introduce `_upload_dir_no_subdir()` and `_upload_dir_https()` to facilitate testing. These use the proper `upload_dir` filter to simulate different environments. Props kovshenin, azaozz. See #34359. git-svn-id: https://develop.svn.wordpress.org/trunk@36565 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -115,3 +115,26 @@ function _wp_die_handler_txt( $message, $title, $args ) {
|
||||
function _set_default_permalink_structure_for_tests() {
|
||||
update_option( 'permalink_structure', '/%year%/%monthnum%/%day%/%postname%/' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper used with the `upload_dir` filter to remove the /year/month sub directories from the uploads path and URL.
|
||||
*/
|
||||
function _upload_dir_no_subdir( $uploads ) {
|
||||
$subdir = $uploads['subdir'];
|
||||
|
||||
$uploads['subdir'] = '';
|
||||
$uploads['path'] = str_replace( $subdir, '', $uploads['path'] );
|
||||
$uploads['url'] = str_replace( $subdir, '', $uploads['url'] );
|
||||
|
||||
return $uploads;
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper used with the `upload_dir` filter to set https upload URL.
|
||||
*/
|
||||
function _upload_dir_https( $uploads ) {
|
||||
$uploads['url'] = str_replace( 'http://', 'https://', $uploads['url'] );
|
||||
$uploads['baseurl'] = str_replace( 'http://', 'https://', $uploads['baseurl'] );
|
||||
|
||||
return $uploads;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user