Drupal along with WordPress are very popular content management systems (CMS) with open source code. Each of them has its own community, a huge number of free modules / plugins, themes and lots of ready-made solutions to create a fully functional website. Both CMSs are acknowledged to be one of the most popular engines in the world for the website development. Each of them has its own set of pros and cons, some of which will be described below.
1. WordPress was originally developed as a system for creating and maintaining a blog, so WordPress is tended to be used for adding / editing content. While with Drupal new flexible CMS can be created, and fully customized to suit specific needs of any user.
2. WordPress uses a simplified TinyMCE editor with a minimum set of functions for content management, while Drupal 8 gives more freedom with CKEditor, which offers the possibility to expand its functionality by installing or writing new plugins.
3. Despite the fact that each system has its own API, WordPress API is quite simple and minimalistic to ease the life of a programmer, but, at the same time, if you need to add some sophisticated content you need to write from scratch. While Drupal API is incredibly large, and provides a much wider application based on its functions.
4. Considering the simplicity of WordPress, to create new functionality the programmer does not need to be extremely knowledgeable in CMS. It is enough to have an understanding of how it works and knowledge of HTML / CSS / PHP. So, in theory, it is easier to find a WordPress specialist, but real-world experience shows the quality of code of such professionals leaves a lot to be desired. You would argue that a developer can write “bad” code on Drupal too, but unlike with WordPress, the consequences of such “bumph” will be noticeable much faster — performance drops, a lot of bugs come out, and, as a result, users are experiencing problems with a website.
5. Technologies used in WordPress remain basically the same from version to version — standard student-level PHP, expanding mainly due to a release of a new version of the language. Drupal (version 8) is built on the Symfony2 framework, that provides both high performance while expanding the functionality and consistency of operation for high load websites.
6. One of the major problems in working with WordPress is faults of websites after updates of plugins and kernel. The thing is that WordPress does not adhere to the expansion of its API. It’s a very common situation when functionality has been tried and tested for years, stopped working after the new update due to the change / removal of some functions. In Drupal, there is no such problem. As a rule, this can only happen with development versions of modules, which have not been officially released yet. This is because each module becomes accessible in the public domain only after repeated checks. Certainly, it can not give 100% guaranty, that you something will not stop working, but it reduces the probability of failure significantly.
7. The number of hooks (intercept function) in WordPress allows to customize existing functionality very scantily, based on the policy — DIY (do it yourself) from scratch. While in Drupal the hooks cover everything, not to mention the fact that the system gives the possibility to extend, supplement existing functionality with your own hooks.
8. To cache sites WordPress uses various plugins, as the boxed version is quite simple and not particularly effective at work, while Drupal caches out of the box just fine.
9. To extend / add new fields and types of content, when, for example, a user would like to create a blog on their website and add the image upload field,WordPress needs additional plugins or a developer should manually write the code that extends the functionality of the site. Drupal out of box offers advanced capability to manipulate everything you have — to create new types of materials, as well as create new fields.
10. Output request for the page with latest materials in WordPress need to be written manually or plugins are used. In Drupal it is enough to use Views which is GUI tool for querying a database. If your tasks require customization then say hello to hooking as well as to writing custom queries.
11. Rights / user roles in Drupal out of the box allows to create various options of working with users, granting rights to work with content, fields, modules, etc.
Described above is only a brief overview of the advantages of Drupal as compared to WordPress. However, on the basis of only these 11 points, you can draw preliminary conclusions about how flexible and versatile Drupal system is. Certainly, Drupal is not the easiest CMS to program, but its benefits make users and programmers wonder about what kind of CMS to choose. As for the functional characteristics of the user experience for content editing, it is as simple as in WordPress.
By Aleksey Razumov