WordPress has an impressive built-in Media Manager to help manage photos and screenshots used in posts. It includes a slick multi-file upload tool, drag-and-drop support, basic photo editing, automatic image resizing, simplistic galleries, and it provdes full control over how images are positioned in posts.
Despite all that, I rarely use it, and actively avoid using it as much as possible. I know, I just said it’s wonderful. So why don’t I use it? And why might you want to consider abandoning it as well? (Note that this will be much easier to do if your site is just starting out, as opposed to being well established with hundreds of images in the Media Manager.)
While the Media Manager has a number of minor interface issues (in particular, browsing large collections of images is a real pain) that make using it harder than it should be, there are two main issues that drove me away from it: poor organizaiton and a lack of portability.
Problem 1: Poor organization
By design, the WordPress Media Manager uploads images into a date-based folder/sub-folder structure, and doesn’t offer any other way to organize your images (you can disable the option to use the date-based folders, but that’s it). As a result, if you use a lot of images, you’ll soon find your uploads folder looking like mine did (right).
The WordPress designers believe this is best for most users, and refuse to offer any other options. From their perspective, if a user is unhappy with this decision, they should just use a plug-in, such as Custom Upload Dir, to change the organizational options.
The problem with the plug-in approach is that, invariably, plug-ins break with WordPress updates, and/or plug-in authors find other things to do, and no longer update their code. If that happens to a plug-in you rely on to organize your images, you’re in trouble. Functionality like this really belongs in the core, but it’s not going to happen.
I personally can’t stand this form of organization, especially for blog posts, as they tend to be topic-related, and may be created over a period of days (or weeks or months). My post on ripping Blu-ray discs was started in March, and finished in April.
If I were using WordPress’ Media Manager, the images for that post would be located in two separate month folders—and interspersed with anything else that I’d done during that time. (WordPress’ designers will say the answer to this is to properly tag images, and use a plug-in to help filter images in the Media Manager by tags…but that seems like a lot of needless work.)
On its own, the decision to go with a strictly date-based hierachy would probably have been enough to drive me away from the Media Manager. But there’s another glaring issue that sealed the deal.
Problem 2: Lack of portability
The way WordPress organizes its files, its “system” files live at (or in folders at) the root of your web site. This is where you’ll find its configuration file (wp-config.php), the folders that hold the files that do the real work (wp-includes), and the folder that holds the admin interface (wp-admin).
You’ll also find a folder named wp-content; this folder holds all the “modifiable” bits of WordPress. Within that folder, the themes and plugins folders hold what you’d expect.
One of the other folders in wp-content is uploads, and that’s where you’ll find all the media you’ve uploaded via the Media Manager,
convenientlyseemingly randomly stored in year-month folders.
Now flash forward a few years, and WordPress has been supplanted by The Next Great CMS™, or TNGCMS for short. If TNGCMS has a WordPress importer, you’re set, because it will hopefully know how to handle the uploads folder, move it to a new location, and update all your posts to refer to the folder’s new location (most likely done with 301 Redirect commands, so the posts themselves won’t change).
But if it doesn’t have an importer, or if the importer isn’t smart about the uploads folder, you’re stuck with a bunch of posts that refer to images located at the path:
More than likely, you’re not going to want to use wp-content as your folder name under TNGCMS. But to move the images, you’ll have to either write your own 301 Redirect (assuming you have access to your site’s .htaccess file and know how to do so), or modify all your posts to refer to the new image file location.
I solve the Media Manager’s organizational design and lack of portability issues by essentially not using it—with one notable exception, detailed below.
Instead, I use a series of folders at the top-level of my site; at right is the structure of what I call the postimages folder, where I keep all the images used in posts. For the earlier-referenced Blu-ray ripping post, for instance, I created and used the folder named bluray.
Other folders are added as needed—typically for a post involving four or so images, I’ll create a folder. For posts with an image or two, I use the always-at-top _onetime catch-all folder.
For me, this is a much better system, as I can quickly find an image for reuse simply by looking in the relevant folder. I have similar folders for movies (a personality quirk; I don’t like to mix movies and images in the same folder) and siteimages (images used in the site’s overall look).
Not only do I find this layout simpler to work with, it’s also fully portable—because it lives at the top-level of my site, I can easily move it to another TNGCMS or whatever else I’d like to use in the future.
How I work outside the Media Manager
Working outside the Media Manager is a bit more difficult, because there’s no built-in support for external images in WordPress’ admin side. Also, many third party blogging tools (such as MarsEdit) don’t (yet?) support uploads outside the wp-content/uploads folder.
So I just keep a Transmit window open to my postimages folder. I keep that open when writing, and just drag any required images into the proper folder. (This is actually easier than using the Media Manager, which opens a separate screen over the writing window, and requires a number of mouse clicks and drags to interact with and upload files.)
I also use some TextExpander shortcuts to minimize the writing of link references; they fill in everything but the filename for me.
I’ve used this system for years, and it’s worked well to keep my images organized as I like them.
(There are third-party gallery plug-ins that let you specify your own image folder location, but the ones I tried all seemed like overkill for my needs.)
While I can’t control the uploads folder’s lack of organization, I was able to control where they were saved. The WP Original Media Path plug-in lets you specify the location of the Media Manger’s uploads folder.
If/when I decide to move away from WordPress, I’ll still be stuck with some images in a horrid month/day folder structure, but at least they’ll be at the top-level of my site.