[zenphoto src=”wp_04_large.png” class=”align-right”]
Since going freelance, I’ve supplied customers with a number of “WordPress as a CMS” solutions. Not only because WordPress is free and fairly userfriendly, but because for most websites WordPress is more than enough and certainly more than solely a blog platform. So much, in fact, that I’ll bet you WordPress is the next big thing on the CMS scene. It’s just waiting to happen, like a big secret waiting to pop out and say “Howdy”.
What’s keeping this? A few things. Besides the necessary critical mass of not-blog-only-websites sporting WordPress, there are just a few hurdles keeping WordPress out in the cold. There’s the “isn’t WordPress that free Blogspot-like website?” confusion (for the love of goodness couldn’t you have called it “WordPress-Spot”, “Spotpress” or just about anything else than WordPress.com?). Besides that, there are a few technical and therefore solvable issues, which I have tried to collect here.
1. Multi Language Support
[zenphoto src=”Gengo.jpg” crop=”tl” height=”148″]
For a CMS to be taken seriously, it has to have translation features. It’s like showing up to a black-tie party without a tie. It doesn’t have to be lavish and overly complex, quite the opposite; simply define your languages in an options page to gain access to writing your posts and pages in a second language.
2. Better Custom Fields
[zenphoto src=”More-fields.jpg” crop=”tl” height=”200″]
In order to properly mold a WordPress theme to not just be a blog, we need to be able to define specific and separate content areas that hook up to your WordPress post and page editors. Imagine a book review website. You’d probably want to provide a special area to show the book author, ISBN number and possibly an Amazon link. That would be three extra input fields in your admin interface, outside of your text body.
Fortunately you can do this already using the More Fields plugin. It’s fairly straightforward to use and does exactly what it needs to, so much that it deserves to be part of the official WordPress core package.
3. A “Refresh The Image Cache” Button
[zenphoto src=”Purge-cache.jpg” crop=”tr” height=”200″]
Ensuring proper image upload and management features probably constitute the most difficult and most important part of a good CMS. Since version 2.5, WordPress has sported an excellent upload feature that crops and scales your images according to configurable widths and heights. This works well; you upload a large “source” image, which is then automatically scaled to thumbnail, small, medium and large sizes which you can then insert in your posts and pages.
The only problem is, if you upload a new version of the source image, or if you change the media dimensions, you have to jump through hoops to ensure that thumbnails and scaled images are properly refreshed. The worst part: you have to do this for your entire website and all its archives, post-by-post.
Zenphoto gets this right. Inserted images are simply symbolic links that point to the lavishly large source image. If you change media dimensions (for instance: thumbnails are now 50×50px instead of 40×40px), you have only to click “Purge Cache” and the next time a visitor views the image, it’s re-rendered automatically.
WordPress would do well to learn from this. Until then, you can use my own plugin, Zenphoto Shorttags, which works in tandem with Zenphoto and inserts image symlinks in this fashion:
Images in this very post are inserted that way, but it would be far more elegant if you could upload your images to WordPress instead of to a second CMS.
4. WYSIWYG Everywhere By Default
[zenphoto src=”WYSIWYG.jpg” crop=”tl” height=”200″]
My programmer friends dread WYSIWYG editors (( What You See Is What You Get, commonly referred to as “Word-like editing” )) and keep them at bay with garlic and crosses. The way I see it, as long as you can switch to HTML, WYSIWYG is far superior and should be default. Everywhere.
HTML is the new terminal. People shouldn’t have to write HTML unless they bloody well ask for it. You may not feel like this right now, but trust me, you will; web-apps everywhere are canonizing WYSIWYG right now and Gmail started it.
So why aren’t WordPress Widgets WYSIWYG? Why aren’t comments? Why aren’t custom fields? I’ll bet you they will be in time, but until then you can WYSIWYG your comments using MCEComments (( As a sidenote to this, my own Quote Comments plugin is now MCEComments compatible )).
5. A Widgets Overhaul
[zenphoto src=”Widgets.jpg” height=”300″ crop=”tl”]
Widgets are drag-and-droppable content containers, which you can put somewhere on your website. There are calendar-, comments- and posts-widgets, not to mention simply text containers. Unfortunately, the interface for adding and removing widgets is surprisingly terrible and very confusing. K2 (as seen in the above screenshot), gets it pretty much right.
It’s not even rocket-science (possibly just a bit of usability science, if that) to improve things. The first thing to do would be to give the Widgets section its own button in the main WordPress navigation, and rename “Appearance” to “Themes”. This, I think, would do wonders in its own right.
Secondly, WordPress should stop using the word “Sidebar”, when really we’re talking about Widget containers. Getting rid of the pulldown menu (that allows you to pick between which container to add to) in favor of simply showing every available container side-by-side would also help.
Finally, all the default widgets would do well with a little tender loving and care. For example, “Textarea widget”, arguably one of the most important of the Widgets, doesn’t support WYSIWYG (see item #4 in this list).
6. Un-Mystify The Page Overview Screen
[zenphoto src=”Pagemash.jpg” crop=”tl” height=”200″]
Pages have been part of WordPress since version 1.5. Unfortunately, things haven’t really changed much since then. The Pages section of WordPress simply shows a paginated list of your pages, subpages badly indented.
If things were done right, pages would be properly intented and shown according to their sort-order. This sort order would be drag-and-droppable, possibly in a tree-view list. Very special attention would be added to the special pages that you decided were your home- and blog-pages respectively, and you’d be able to set those, right on the Pages section.
PageMash helps out with the drag-and-dropability of your pages, but nothing more.
7. Let Us Hide Pages From The Menus
[zenphoto src=”Pagemenu.jpg” crop=”tr” height=”200″]
Pages are great content holders, but by default all your pages show up in your page menus (navigation and sub navigation). If WordPress is to be your entire website CMS, you have to be able to create pages that has nothing to do with your main website. Pages that do not show up in your main menu. For instance, microsites, party invitations, privacy policies and other such things that you really do not want main-navigation links to.
To hide such items, today, you have to edit your theme files and add cryptic IDs to a comma-separated list of pages to exclude. Wouldn’t it be far more elegant with a simple checkbox on your page edit screen?
[Update]: CMS Navigation plugin does this. Not perfectly, but close.
[Update]: Exclude Pages plugin does this, perfectly!
8. Improve The Media Insertion Dialog Boxes
[zenphoto src=”Media_insertion.jpg” crop=”tl” height=”200″]
Right now, only WordPress.com users get all the fun. They have shortcodes for easily inserting YouTube and Google Video, while WordPress normies have to copy/paste the embed codes hoping things aren’t borked by WordPress.
Things could be even better, though. Inserting embedded media shouldn’t be any different from using the “Paste from Word” button that comes with the Visual (WYSIWYG) editor.
Additionally, uploading video files, be they Flash (flv), Quicktime (mov) or any other format, WordPress should supply players and embed codes that did the HTML work no different than if you were inserting an image. Finally, the whole process of inserting images could be optimized. My own Flash Shorttags plugin helps you insert the Flash, but not as elegantly as it should be.
9. More Post-Image Features
[zenphoto src=”Tag-images.jpg” crop=”tl” height=”300″]
While confusing at first, the idea of “uploading images to a post” is a good one. It enables us to show a thumbnail-sized post image on excerpt pages, or as a post teaser on the frontpage (which, these days, is wildly popular on websites such as Joystiq and Lifehacker).
So why can’t we upload images to categories or tags? Why can’t we write category or tag descriptions in wonderful WYSIWYG? Probably, no-one thought about it.
Until we can, you can implement a subset of this using powerful magic from James’ bag of tricks.
10. Allow Fine Grained User Role Management Control
[zenphoto src=”Role-management.jpg” crop=”tl” height=”150″]
While little you do in WordPress makes irreversible damage (especially since the inclusion of post revisions), some things do mess things up. That’s why you’ll always want there to be administrators, editors and sometimes even contributors. Right now, however, these roles and capabilities are set in stone and not configurable. Role Manager is there to help but unfortunately, I’m told it’s not quite as compatible as it could be, and really, this functionality should be part of the WordPress core.