We Are Communication Architects

Building brand awareness through content creation and community engagement.

August 6th, 2010

4 Things WordPress Should Borrow From Drupal

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.

1. Imagecache

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.

4. Panels

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.

Filed in Development, Usability, Voce Platform Services, WordPress

Add Your Comment5 Responses to “4 Things WordPress Should Borrow From Drupal”

shane on August 7th, 2010 at 12:03 am

Good call.

Most of these seem to be things than can be fairly well achieved through a theme or plugin. Carrington build (http://crowdfavorite.com/wordpress/carrington-build/) for example basically tackled #4 with elegance. There are some extended permissions plugin out there for #3, although I think there is room for significant improvement. Perhaps I am mistaken but a little bit of buddy press gives you all you need for #2. As for #1, totally agree. Although that is what a CDN is for should your site genuinely need it.

Amir Helzer on August 7th, 2010 at 3:51 am

There are other powerful features in Drupal that are missing from WordPress.

To see which ones Drupal considers most valuable, you can look at which features made it from being modules into Drupal core (in D7).

1) CCK went into core in D7. 2) Multilingual support went into core in D7 and improves significantly in D7.

Besides those, folks debate between Panels and Context but consider Views as something essential.

Jason on August 8th, 2010 at 10:28 pm

You should send your imagecache plugin idea to a couple people who would be good candidates to actually develop it–i.e. current WP image plugin developers to move the idea along. Help vote for the ability to organize images during upload into unique subfolders here: http://wordpress.org/extend/ideas/topic/how-about-ability-to-sort-media-by-saving-them-into-folders-when-uploading#post-17001 And filing a Trac report for moving user profiles to the front end could help that idea along too!

You’ve written a number of great ideas here. Let’s get the ball rolling! 😉

I’m not a php developer, but found a pet project getting plugin authors of popular plugins to remove their outdated practice of hardcoding URL’s with wp-content and wp-content/plugins in favor of using the new WP_CONTENT_URL and WP_PLUGINs_URL. It’s a small, but direct action that I can take.

Good post. Would love to read more about Drupal features that you think WP should integrate! I’ve been feeling a bit limited by WP and thinking about switching to Drupal. But my gut tells me the momentum is with the WordPress community (unless Drupal drastically improves their UI).

John G on August 9th, 2010 at 10:27 am

I still like WP than drupal.

Jason on August 10th, 2010 at 10:21 pm

I looked into the description of ImageCache. It sounds awesome. We clearly don’t have that for WordPress yet. But you can integrate the Smart Image Resizer or Tim Thumb php script to automatically resize and cache images based on the size you put in the url. It would be great if it were put into a plugin and made easy to use though b/c it is not at the moment.