Don't worry about people stealing an idea. If it's original, you will have to ram it down their throats. - Howard Aiken
WordPress is an extremely popular CMS solution. It allows to quickly create a simple website with static pages and/or periodically published articles. It’s the type of website that a typical small business needs.
One of the biggest advantages of WordPress is its widespread adoption. About 19% of websites are built using this system. It’s very well supported by all major web-hosting services. There is huge amount of information available about WordPress in form of manuals, tutorials, discussion forum, and support questions.
Its second biggest advantage is a low cost of setup for a simple website. WordPress itself is free, but you should expect to spend around $50 for purchase of a high-quality template. This template will define how your website looks and feels. If you purchase such template, there will be 100s of other websites online with the same look, but you still get an excellent value for the price.
Custom, unique templates can be easily created as well. This require involvement of both web-designer and web-developer. In return, you get one of a kind website that matches branding of your business.
WordPress is not a system for an average web user. Installation is usually simple, but it should be done by an experienced and knowledgeable technician or engineer. Similarly, a user should not be left alone to choose among 1000s of templates and plugins. Some training is also needed before a user can edit pages and post their articles.
WordPress is available in form of service, but I don’t have any experience with it.
WordPress is a very reliable, open-source system. There is excellent support from hosting companies. It receives regular, automated updates.
It provides all features needed for a typical small website that contains information about a business/organization/person, publishes blog or articles or displays products. It’s a good fit for a small e-commerce site thanks to plugins such as WooCommerce.
I would rate its usability for administrator as average. It is promoted as a system that anyone can use. However, it requires quite a lot of technical skills for initial setup. It require some training before the administrator can use it correctly.
WordPress is not well designed for developers – its API is inconsistent, confusing and inefficient in many cases. For example, compare signatures of these two functions:
wp_title( $sep, $display, $seplocation ); // Display or retrieve page <title> for all areas of blog. the_title( $before, $after, $echo ); // Displays or returns the title of the current post.
Inconsistencies in syntax make the system hard to learn and use. Confusing semantics is common too.
WordPress is an old system with a poor architecture. It’s not modular, testable nor maintainable. For example:
- Extensive use of global functions and variable without any naming convention.
- Plugins are dependent on core features that require running system. Small plugins cannot be unit-tested.
- Does not have single entry point for a web require. It has more than a dozen different files that might handle a request.
It has several features that allow for easy extensible:
- system for themes and plugins that are independent of each other
- plug-able hooks and filters
- extendable menus
It offers good performance for most websites. It can be run on a inexpensive shared-hosting account.
WordPress is a great solution for standard websites which display information. It can be used for projects with very small budget.
It’s NOT a generic-purpose website framework. It’s easy to write a small plugin to implement a new feature such logging, widget, or integrate 3-rd party service. Many such features are already available thanks to large collection of read-to-use plugins. However, WordPress is not good system for big customization.