I made the switch to WordPress from Drupal seven months ago and I don’t ever think I’ll go back. WordPress’ speed of development, template tags and elegant admin user interface would be to hard to give up. But as I have worked more with WordPress I’ve found there are some features from Drupal that would make it even easier to build complex sites quickly.
WordPress 3.0 made great strides handling images thumbnails of various sizes. Quick to set-up, The new post-thumbnail functionality allows theme developers to quickly assign different sizes to a given post-thumbnail. If you need to know how to set this up, Mark Jaquith has written an excellent post about this feature.
Voce’s Chris Scott expanded on this with his Multiple Post Thumbnails plugin. Allowing you to add more thumbnails to a post. This allows for more “magazine-like” layouts and makes it easy to control secondary images.
Drupal’s Imagecache module gives developers and themers control of all the images on the site. It allows you to create presets that resize, crop or scale the image – and even combinations of all these. These can be controlled from the GUI or can be placed in the templates in PHP. It has settings that allow you to control the crop point or force the scale of an image into a particular set of dimensions.
Postthumbnail was a great addition to WordPress, but Imagecache’s feature set is where it needs to go. These features could be added initially through a plugin and if there is wide adoption moved to the core.
2. User Profiles
I had a client request during a site build request a fully themed user profiles and login page. This was early in my switch to WP so I was not fully aware of how the login page, user profiles, and Gravatars were put together. Thus began my descent into two nights of hell.
The only way to change this behavior was through plugins. These were piecemeal. One would change the login another would change the profile, and they never played well together. No matter how well the I controlled the links to the login screen, eventually the user would hit the WordPress admin theme. It was a mess that ate up about 48 hours of my life. The mess would have been much more manageable if these pages were on the presentation side of WordPress – not a part of the admin.
Like Drupal, WP needs to make all site user facing pages should be themeable. This provides a consistant experience for the sites visitors. If the site manager wants users to upload avatars instead of using Gravatars they should have this functionality. At minimum, a user should be able to create an account upload Gravitar’s from the registration page.
BuddyPress does solve a lot of these problems, but comes with a lot of rigidity and overhead. Sometimes you just need a profile page and some functionality and not a whole social network site.
Drupal creates profile pages for all users, and these are on the presentation side of the interface, not the admin side, making them fully themeable.
The registration structure is badly in need of an overhaul to make WordPress a more flexible CMS. There may be a way do with plug-in but that won’t fix the root problem, the user profiles should be on the presentation side of WP, not in the admin.
3. More Granular Access Control
As WordPress moves more into the CMS realm and is used to build larger sites, the need for much finer control of permissions will be needed. Not just in the core but across plug-ins. At my last position, in a news company, we went through several rounds of debate deciding whether to use Drupal or WordPress as the main software to run our sites. Drupal’s access control system became one of the deciding factors.
Large web sites are managed by teams of various skill levels – from barely technical content-producers, writers and photographers to highly proficient developers and sysadmins. These people need varying levels of access to everything – including plugins. For example, I may want someone to be able to add a piece of breaking news, but I don’t want them to manage it’s position on the page. That same “editor” may have control over one section but not others. You also may have outside contractor’s working the site and you want to limit their permissions to very set tasks.
Drupal’s permissions are extremely granular, allowing site admins to control not only who can do what in the core, but with modules as well. Site user’s access can limited by taxonomy with the addition of a module.
Much finer permission’s control is needed as larger sites adopt WordPress as their CMS platform of choice.
As WordPress evolves even more into a CMS solution there will eventually be a need to manipulate the layouts of the index page or section pages beyond the occasional collapsing div tag. The most common practice of this, called “Day-Parting,” involves changing the layout of the main pages to make different content and different presentations of content available on at different times of the day or week.
Examples of this are light news at the top of homepage on Mondays and restaurant and movie listings on Fridays. On commercial sites this could involve changing out promotions at different times of the week and changing from text-based to graphic or flash based promotions depending on where you are in the campaign cycle.
Drupal’s Panels are sidebars and widgets on steroids. They allow whole sections of the page to be manipulated, they also allow new pre-built layouts to be swapped out for a page. This is all done through an admin GUI so developers aren’t need to make the swaps. This puts a lot of power into the hands of the people who run the site and creates a much richer user experience. This could be accomplished as it is in Drupal through a plugin(module).
Drupal’s single biggest drawbacks are the barely useable admin and the time it takes to buildout – both are areas where WordPress excels. The pieces of functionality above coupled with WordPress’ excellent template tag system would make WordPress the “go-to” CMS for larger sites and increase it’s value to developers build small to medium sites.