WordPress is a powerful tool and any good web developer would have to confess that. I think Garfield used the perfect word to describe it “cute”. WordPress looks good. It is easy to use and easily available. For simple blogs, and even simple informative sites it’s probably the best choice. But when it comes to raw power WordPress falls into second place. It just can’t compare to Drupal’s flexibility.
While WordPress focuses on being a powerful user-friendly interface for blogging and displaying information Drupal has emphasized developer tools and API’s. The best example of this is the new Drupal 7 Fields API. Formerly known as CCK in Drupal 6 it gives Drupal the ability to add new content types and customize those types to represent anything. Pages, events, blog posts, documents, videos are all created quickly through configuration changes. But that’s just the front end. Most importantly the Fields API allows programmers to hook into the core of Drupal and create new and customized types and behaviors.
Recently a customer desired a calendar to display upcoming events. Calendars are a common request for organizations that depend on speaking engagements and class schedules but each organization wants different information included in the events. Time, date, location, sponsors, food menu’s, and age requirements are examples of data that may be desired inside an event. It would be easy to place all of this information in one large text area with a WYSIWYG editor but separating the information into individual fields provides for SEO optimization, searching and filtering inside of the site, dynamic visibility of the content. A calendar page will sort added events by date automatically and only display events after the current date. A separate page could be listed with all events targeted at children under 13. In a more static setup these pages would have to be manually added to the separate lists for every new event and old events would have to be manually removed from the list instead of expiring automatically.
WordPress contains similar abilities to display dynamic content but without the ease of creating custom fields and behaviors on the fly. When you get a calendar on WordPress you get what some developer needed for his site. Customizing the fields available requires altering or adding php code for each field. Creating new ways to filter and present the data requires similar PHP changes for each display.
As a web developer I’ve chosen Drupal because my hands are not tied by the core functionality. Instead the core is an API that equips and enables me to create a site that meats my high standards and my customers expectations.