Opened 7 years ago
Last modified 6 years ago
#41753 reopened enhancement
_wp_get_attachment_relative_path uses hardcoded uploads directory path
Reported by: | nedga055 | Owned by: | |
---|---|---|---|
Milestone: | Future Release | Priority: | normal |
Severity: | normal | Version: | 4.7.4 |
Component: | Media | Keywords: | has-patch |
Focuses: | Cc: |
Description
I'm using a theme that in turn uses the _wp_get_attachment_relative_path to help generate paths to uploaded images.
However, because my WordPress install changes the uploads directory path, the function returns the file system path for the attachment rather than then relative path within the uploads directory as expected, which ultimately breaks the intended functionality.
In _wp_get_attachment_relative_path, would it make sense to do something like the following instead of hard coding 'wp-content/uploads':
$uploads_dir = wp_upload_dir(); $uploads_basedir = $uploads_dir['basedir']; if ( false !== strpos( $dirname, $uploads_basedir ) ) { // Get the directory name relative to the upload directory (back compat for pre-2.7 uploads) $dirname = substr( $dirname, strpos( $dirname, $uploads_basedir ) + strlen($uploads_basedir) ); $dirname = ltrim( $dirname, '/' ); }
Attachments (2)
Change History (7)
#1
@
7 years ago
- Keywords has-patch added
- Resolution set to invalid
- Status changed from new to closed
This ticket was mentioned in Slack in #core-media by antpb. View the logs.
6 years ago
#4
@
6 years ago
This ticket was discussed in the recent media component meeting. We are wondering if this will impact multisite and would caution that we do some testing with it in that configuration. My initial digging found that we do account for multisite in the wp_upload_dir
docs.
https://developer.wordpress.org/reference/functions/wp_upload_dir/
This below comment mentions wu_upload_dir();
accounts for multisite by appending sitename or id.
https://developer.wordpress.org/reference/functions/wp_upload_dir/#comment-2703
The correct patch file