WordPress is the go-to CMS for most new website and blog projects and even migration projects. However, considering the large number of WordPress sites I have seen, there seem to be very few that actually utilize it as a Content Management System. Too many theme jockey’s and plugin installers, I guess.
I’ve been using open source content management systems since phpNuke was still in the works. After years of Drupal, CMSMS, Joomla, WordPress, and a hand full of commerce platforms, I still believe that you should use the content management system that best suits your project. Sometimes that means a completely custom CMS, sometimes Drupal, and most often WordPress.
WordPress is an amazing system with a fantastic community of developers to support it, but it still has its drawbacks. WordPress has grown rapidly and now powers around 25% of the websites on the Internet. And plug-in development has not fallen behind. There seems to be a plug-in for every possible thing you can think of. And people use them, often too many of them. Those that do are left with a dashboard that’s filled with advertisements, outdated plug-ins, and so many menu items, you can no longer figure out where you set your homepage.
There is a tremendous difference between hacking something together and actually utilizing the power of WordPress. Let me explain. Recently, we were given the task of building a site in WordPress with a completely custom theme, multiple content types, and multiple content queries to display content in different locations through the site. We started with .PSD files from a great design agency that we have worked with on multiple projects.
There are 3 plugins that we use on nearly every site we build. With these 3 plugins, you can gain nearly all of the functionality that Drupal has had for years without inundating your dashboard in chaos.
There is sometimes disagreement among WordPress developers in regards to how WordPress should be used. Many programmers argue that you don’t need plugins to create queries or content types. Instead, these can be done within your theme. Using a Widget plugin to control widget visibility on various pages can provoke just as much conversation. Certainly you can set the display to none on a specific page or page type. We find that these are poor ideas. What happens when you go to change your theme and suddenly your content types and queries are nowhere to be found and displaying in all the wrong places?
Using plugins to manage content types, content queries, and widgets completely make sense and it’s something that Drupal users have been doing for years.
Alcopala is a perfect example of this system.
- Set the background image
- Set the title
- Set the content
- Select a color for the background behind the text. T
Another example from this site is the Downloads page.
Rather than creating a query and a new page template, we were able to create a page and then use two different query widgets displayed below the content and set them to only be viewable on the downloads page.
The goal was to allow the site maintainer to simply click on Add Download. Then add a title, the description/body, select which icon to display, and then upload the file. Everything would then automatically be formatted on the downloads page with absolutely no CSS or HTML from the site maintainer. Query Wrangler allows us to set up everything and then use a callback function to pull the file location for the download link.
The goal is to hand over an Administrative area that requires as little HTML knowledge of the site maintainer as possible. It’s easy to do this with a blog, but when you have a site with multiple content types, sliders, forms, and widgets, this can seem like a challenge.
This site could easily have used a:
- Slider plugin
- Banner image plugin
- Related posts plugin
- Plugin for downloads
- Content types in the theme
- Widgets visibility being handled with CSS.
This could have been the case and this is what we see on so many projects. But with 3 simple and well-maintained plugins, everything stays neat and the site becomes far easier to maintain, update, and modify for both the initial developer as well as future developers. Everything has its place and it is clear what is going on.