The /wp-content/uploads folder in WordPress is usually the default destination for media files uploaded through the admin interface in WordPress. Thus /uploads is outside any individual theme, and accessible to all themes on the site.
Some themes (I’m thinking of ShopperPress here) by default puts media uploads in a folder inside the theme. So if you switch themes, guess what? You can’t get at the media files anymore without some ‘unusual’ coding. I will never again use a theme that only works if you put the media files inside the theme.
- WordPress creates a thumbnail, medium size, and large size version of images, the size of which can be controlled through Settings -> Media. WordPress also creates database entries for the file locations.
- If you upload media files via the admin interface, then anyone with admin access can get at them. This can be a problem if you have something the theme depends on and a client that has just enough knowledge to be dangerous. When this is the case, I just FTP the files to the /uploads folder and don’t use the admin interface. This way the files are where you need them but they don’t show up in the Media library, so the client with admin access can’t accidentally remove them. That’s one way to do it. I guess I could create another folder to store such things in. Maybe I’ll try that some time.