Why WordPress is Bad

Pavel Karoukin's picture

WordPress is a great piece of software... for blogs. It's also good for quick sketching of small websites with all static pages. It allows for quick and hassle free change of page content, while handling header/footer/sidebars itself. So it has some CMS capabilities.

Overall, WP has a great admin panel focused on content editing. You can get your blog launched within 5 mins and you can install custom blog themes easily too. So it's great, until you try to use Wordpress for something it is not designed for.

I have noticed that more and more non-blog sites are being launched on top of WP. More developers propose to use WP as a CMS for pretty complex sites. For example, some offer using WP to create online stores or community sites. It even can be done with plenty of plugins for wordpress.

It seems to me that it has happened because of being too easy to start a new site and any guy, who knows how to "print 'hello, world!';" (or even worse: <?php sub print_hello() { ?> Hello, world; <?php } ?>) thinks he is a great developer. They start tweaking Wordpress the same way and offer website design service. If such developer leaves such project, next developer hired by the client will need tons of time to get the idea of how the whole site works and how it's possible to: upgrade hacked plugins, tweak HTML output, etc. Result? Lost money due to absolutely inefficiently spent development-time.

Take a look at Wordpress's "Themes" or "Plugins". Using inline PHP where only Viewer logic should reside, plugins, that never use any template framework and always mix code and HTML in one plugin file. Starting from the 1.2 version of Wordpress they introduced a system of hooks and filters to get rid of hacks, but still almost all plugins looks like "hacks" themselves.

In conclusion: if you need just a blog or a simple 5-page website - WP is good for it. Any one, who can read README.txt and has good hosting account can setup it withing few mins. But if you need something more complex - consider something designed for your objectives. There is no ready-made solution? There are a few great Web frameworks to use, like Zend Framework or Catalyst Framework, so you can build something designed specially for you.