Advanced WordPress Development

Is WordPress just for blogs?

My client kept describing the requirements of her application, as I nodded and wrote down the key points.

“Finally, we only have a shared Linux hosting plan for this application hosting, and we would like to keep using this server” – she concluded.

I reviewed all my notes, and I started getting a good picture of the kind of software project I had in front of me. My client needed a custom Content Management System with some very specific requirements about types of content, formatting, listing, and options that could be configured from the dashboard. The timeframe was also pretty tight for the available team and size of the project, and it seemed we were confined to a LAMP environment with limited resources.

“I think we can do it” – I said. “If we build this on top of the WordPress engine, we should have all this ready soon, meeting your target deadline.”

She looked surprised. “WordPress? Isn’t that just for blogs?” – she asked.

Truth is that the WordPress framework can be more powerful than that.

After a few days working on her project, I presented the final version with its documentation. Custom features abounded, making as easy as possible to carry out the specific functions that my client needed.

“This works great” – she told me. “I cannot believe this was made with WordPress!”

Going well beyond WordPress

When I started working with WordPress, I somehow missed the organized structure that other frameworks carry with them (and almost impose,) no matter if they are still PHP-based, or even in a more ideal scenario, Java-based.

However, when your project is defined by specific, restrictive conditions, WordPress can be a reasonable option, as it comes certain advantages that speed up the whole development process. Covering basic navigation and user management functions out-of-the-box, while offering plenty of good starting points for the presentation layer, WordPress is a good approach when you are confined to an particularly restrictive LAMP hosting environment – especially if the project itself is accompanied with scarce resources and tight deadlines.

Programming languages and frameworks are flexible tools to develop custom solutions. Universal good coding practices still apply.

Once you learn the peculiarities of the framework, lots of possibilities are unveiled – as it is the case with pretty much all technologies I’ve worked with. It was possible to harness the inherent complexity of the framework, and to keep building new code in a clean way. I did so by keeping a code structure organized and object-oriented, connecting with as many WordPress actions and filters as possible, so my extensions of the core framework were as readable, modifiable and loosely coupled as the platform allowed.

You would be amazed about the applications I built around the WordPress engine. They are well beyond the typical blogs, and are more in the level of an advanced WordPress developer / plugin developer. E-commerce systems, interactive marketing campaigns, dashboards to customize the contents of Flash-based front-ends, private extranets, plugins for SEO, and e-learning applications are just some examples.

Sometimes, it is even hard to recognize WordPress in my resulting, intensely re-engineered versions of the framework. Custom fields and content types in the dashboard allowed my final users to quickly write down all the data they wanted to showcase, which would then appear perfectly formatted in the front-end. Personalized user roles would keep the right editing options available only for the right users, allowing me to create a CMS with different kind of members. You could even write down a catalog of your products, or a list of courses with downloadable content for members only, and even quizzes with automatic correction and saved scores, or newsletters that would be sent to target segmented users.

What should your application do? Maybe it’s a good candidate to be built around the WordPress engine. Don’t hesitate to contact me, and we will find out a framework appropriate for your project.