I'm working on a site that has several hundred pdf files uploaded over the course of a few months. All uploads are organised in the uploads directory by year/month.
The client has just decided they don't want dates in their pdf urls. Instead of having the URL site.com/app/uploads/2019/06/whatever.pdf
they want the url site.com/app/uploads/pdf/whatever.pdf
. Note that this only applies for pdf files.
For new uploads this is easy enough. I added a filter for wp_handle_upload_prefilter
that checks if the extension is pdf and changes the upload directory to uploads/pdf
accordingly. However I'm not sure how to change the URL for all existing pdfs.
I looked into moving all pdfs into the uploads/pdf
directory and then modifying the wp_posts
GUID field to reflect the new location with
UPDATE
`wp_posts`
SET
guid = CONCAT(
SUBSTRING_INDEX(guid, '/uploads', 1),
'/uploads/pdf/',
SUBSTRING_INDEX(guid, '/', -1)
)
WHERE
post_mime_type = 'application/pdf'
..but this didn't work. (done on a test site). The GUIDs were changed but the URLs remained the same.
How can I update the URLs of all pdf uploads without modifying URLs of any other upload type?