Wordpress Content Management System



WordPress is the most popular content management system (CMS), powering up to 29% of all Internet websites (source). A CMS is a generic term for any system that facilitates the creation and publication of any type of digital content. This category includes platforms for creating static sites, blogs, forums, online stores and everything in-between. Other well-known CMSs include Joomla, Drupal, Shopify and SquareSpace, all of them with a much lower market share: 60% of all sites using a CMS go with WordPress, the only one with double digits (Joomla takes second place with a 6.4% market share).

  1. Wordpress Content Management System
  2. Wordpress Content Management System

Given its importance, WordPress deserved to have a dedicated impact column in the IEEE Software magazine.IEEE Software‘s mission is to be the best source of reliable, useful, peer-reviewed information for leading software practitioners. The goal of these impact columns is to develop a better quantitative understanding of software’s impact on different industries. As such, the goal of the column is not just to describe a specific software product but to provide some insights on how the software is being developed and some metrics that help to assess its impact.

CONTENT MANAGEMENT SYSTEM Customized CMS develpment that helps you get started on a project that fits within your budget Web integration of multiple CMS platforms, including transactional, ecommerce, and content-based CMS A team of CMS web developers and SEO experts who can provide reliable and flexible services to produce a higher ROI. WordPress: The Content Management System The WordPress platform is the ultimate platform that supports millions of sites throughout the world. Equipped with a standard dashboard, WordPress is a universal platform that any individual or business anywhere on the globe can use it to build a basic or complex website. WordPress is the most popular Content Management System (CMS) in the world, powering roughly 29 percent of all active websites. Content Management System. “A content management system (CMS) is a computer application that allows publishing, editing and modifying content, organizing, deleting as well as maintenance from a central interface.”. Once you have added image in your post, WordPress becomes a more entity you can call it into other post or page or gallery in any time without upload the again. WordPress is a free and open source content management system (CMS) based on PHP and MySQL. It is the most widely used CMS software in the world, and as of May 2019, it powers more than 30% of the top 10 million websites and has an estimated 60% market share of all websites built using a CMS.

With this context in mind, I hope you enjoy my impact column on WordPress – A Content-Management System to Democratize publishing. Keep reading for the unedited (but free) version of the column.

WordPress started in 2003 when Matt Mullenweg and Mike Little forked the b2 blogging platform and created the first version of WordPress. WordPress is an open source project released under the GPLv2 (or later) license. The WordPress Foundation was started in 2010 (inspired by the Free Software Foundation and the Mozilla Foundation) to further support its sustainability and promote the project. The foundation owns the WordPress Trademark.

From the beginning, the WordPress mission has been to democratize publishing, ensuring that any non-technical person was able to create her own website while at the same time building a product that can scale all the way up to enterprise clients with complex needs (e.g. eCommerce, multilingual, mobile). The recent addition of the WordPress REST API is a step forward in this direction. Thanks to the API, you can now use WordPress as a headless CMS to build your own web applications on top of WordPress while benefitting from all its core backend functionalities (e.g. for collaboration and content and user management).

The WordPress Codebase

WordPress comprises over 500K lines of code mainly consisting of PHP code serving HTTP requests by querying a MySQL database. However, there is a quickly growing presence of JavaScript, especially in all components implied in the frontend aspects of WordPress. React has been chosen as the core JS framework for its new JavaScript-based developments.

Figure 1 displays some stats on the evolution and growth of the WordPress codebase. Nowadays, PHP still represents over half of the total number of LOCs (Lines of Code) with an additional 30% of JavaScript. CSS, HTML and XML make up for the rest. Its compound annual growth rate over a 14 year period (from the 16314 LOCs it had in Dec, 2003 to the 565917 LOCs in Dec, 2017) is 28.8%, which puts WordPress in the upper end (but still within the typical range) of the calculated CAGRs for software projects[1].

Wordpress content management system cms

Figure 1 – Evolution of LOCs in the WordPress codebase grouped by language – Source openHub.net

The database schema is rather simple with only 12 core tables (see the Entity-Relationship schema of the tables, showing the relationships between them though the corresponding foreign keys are not part of the WordPress database SQL DDL script).

WordPress code itself is organized into a few dozens of core components based on the functionality they provide (rather than size or language). Each component is coded using a mix of procedural and object-oriented programming techniques. Typically, new functionalities are developed with a more OO style and a few class wrappers have been added to better encapsulate related sets of functions.

WordPress development

WordPress uses Subversion as version control system with the current development version available at this location. Trac is the bug tracking system in place where all important discussions take place with Slack as a complement for real-time communication. There is also a GitHub mirror but only as a read-only version of the SVN repository.

Since its inception, over 30 versions of WordPress have been released, the current one (at the time of writing) WordPress 4.9.4. WordPress strives never to break backwards compatibility. This is contrary to other CMSs like Drupal, which is prepared to break it at every major release if this simplifies radical code improvements. Note that, for historical reasons, WordPress does not use semantic versioning and therefore the first two digits are the actual identifiers of a major release with the third one identifying minor releases (mainly for security patches and bug fixes). Until recently, releases were fairly regular, launching a new major release every four months, give or take. In 2016, it was announced that WordPress would move towards a more feature-driven approach with each new version focusing on the release of a major functionality. Editing, customization and the REST API were the first three planned. In the end, we have witnessed a mixed model with different release models happening in parallel.

Each release has a lead developer with the recent novelty that we may now also have a nominated designer lead paired with the lead developer. This trend of recognizing the key role of designers in the development process is something we are seeing as well in a number of tech companies that are drastically improving their developers/designers ratio. Leaders rotate in each release, which helps to involve more people in key positions of the project and therefore helps to increases its bus factor, a measure to calculate the risk of concentrating too much information in a small number of developers.

Wordpress Content Management SystemWordpress content management system cms

The release leaders decide on all technical aspects of the release but they depend on the WordPress community to move the code forward. This also includes adding unit tests (WordPress uses PHPUnit and QUnit for automatic testing of PHP and JavaScript respectively). For instance, 443 contributors participated in the latest major release (4.9), of whom 185 were new contributors. Beyond the lead developers, a number of core committers have write access to the SVN and can, therefore, commit the patches submitted by those contributors. Sometimes commit access is granted on a temporal basis to work on specific components but a number of people have a permanent commit access and constitute what is known as the WordPress core team. Moving up from external contributor to core team is mainly based on meritocracy. This meritocracy takes into account not only the technical skills but also the attitude, professionalism, and respect to the project’s core philosophies. And at the top of the chain, Matt Mullenweg, the WordPress co-founder, supervises everything under his (unofficial) role of BDFL (Benevolent Dictator For Life).

A weekly open bug triage meeting is held every week but security vulnerabilities are immediately addressed (you can see the list of all declared WordPress security vulnerabilities) and, if necessary, a new minor security release is prepared and all WordPress sites automatically updated since by default all WordPress sites automatically update themselves as soon as a new minor release becomes available. The WordPress security team is made up of approximately 50 experts.

How people make money with WordPress?

WordPress is a multi-billion market today and everything points out that it will continue to grow in the future. A key factor in this business growth is related to the huge user community around it. As an example, WordPress organizes WordCamps; a focused event in a city favoring local speakers and attendees. Last year only, there were 128 WordCamps and over 4000 meetups adding up to more than 100K participants.

Beyond all kinds of consulting services (installing, configuring, tuning, migrating …) to serve the WordPress community many people decide to build and sell plugins extend the core WordPress functionality or themes to customize the look and feel of WordPress sites. WordPress offers many predefined hooks that plugins can “hook into” to provide their functionality without modifying any core WordPress files. Around 2000 hooks are available and each hook corresponds to a common WordPress event (saving a post, approving a comment, creating a user). In response to those events, plugins and themes can either perform a specific action or filter the current content to change how it is going to be displayed to the user.

As of today, there are 47K plugins in the official repository that have been downloaded over 600 million times. Plugins can be completely free, paid (sometimes as part of a subscription service) or follow a freemium model, and similarly for themes. The quality of the plugins wildly differs and, in fact, more often than not, they are the ones to blame when a WordPress site gets hacked. There is a plugin review team and a theme review team that checks that each submitted plugin adheres to the plugin guidelines (verifying security, quality and “spammy” aspects of the plugin). Like all sets of rules, they try to be precise but are always open to interpretation and there has been some controversy regarding decisions on the inclusion/exclusion of certain plugins and themes from the official repository. The upcoming Tide initiative will make the process more transparent by helping plugin developers to run automated tests on their plugins to check for PHP compatibility errors and warnings prior to the submission.

While creators of plugins and themes are mainly independent developers or small agencies, larger companies offer WordPress hosting services with a more predictable and recurrent revenue model. While you could install WordPress on any internet hosting provider, some provide a more dedicated support for WordPress sites, offering, for instance, staging sites or integrated cache systems. Automattic (Matt Mullenweg’s company) is one such company, offering hosting services under the domain https://wordpress.com/, not to be confused with wordpress.org, the home of the open source project itself.

Roadmap and challenges ahead

WordPress has gone a long way from a humble blogging platform to the flexible CMS it is today. But it will need to continue to evolve if it wants to stay on top. The CMS market is very appealing with new competitors popping up every year in all areas of the CMS spectrum trying to become the best CMS for specific customer profiles / sectors in contrast to WordPress’ aim to be the one-size-fits-all solution with the help of its broad ecosystem of plugins, themes, hosting solutions, etc, mentioned before. A WordPress Growth Council has been recently created as a reaction to this threat. The “Five for the Future” initiative complements this by requesting all companies living on WordPress to dedicate 5% of their people to contribute back to the WordPress core — be it development, documentation, security, support forums, theme reviews, training, testing, translation or whatever it might be that helps move the WordPress mission forward.

On the technical side, the next version will ship with Gutenberg, a major architectural shift for WordPress and the longest feature development effort in the history of WordPress. Gutenberg aims to simplify all previous concepts of WordPress (menu, widget shortcodes) in one elegant concept: the block. According to the WordPress founder, Gutenberg will be the future of WordPress writing, editing and customization for the next ten years. As any major change, Gutenberg has stirred a lot of controversy in the community since it will force many plugin and theme authors to rewrite and rethink how their plugins work and it will make many of the popular page builders obsolete unless they invest considerable efforts to adapt to the new Gutenberg methodology.

While these changes go in line with WordPress goal of dominating the CMS market, from large enterprises to individual bloggers with little technical knowledge, there is also the risk that some communities of WordPress users feel the project is evolving in a direction that no longer represents their views and decide to fork the project and create a specialized version to better fit their needs.

One way or the other, the research community has a lot to contribute to the future of WordPress. It is somewhat surprising that so few research articles focus on WordPress compared to, for instance, papers analyzing Linux from every possible perspective. I think the richness and importance of the WordPress codebase and ecosystem pose many interesting challenges for the research community, especially for researchers working on the mining of software repositories. As a long-time WordPress user and researcher (e.g. see some of my ideas on the benefits of a closer relationship between WordPress are the research community, most of them still valid today), I encourage you all to contribute to the growth of WordPress and its community.

[1]Compound Annual Growth Rate for Software. M.van Genuchten, Les Hatton. IEEE Software 29(4), 2012

Content development has become a sensational means of sharing information over the internet. Even the non-technical users got the ability to publish content easily and quickly on the World Wide Web. It is all possible because of the easy-use of content management tools available and is widely used by firms, news organizations, educational institutions, and other businesses. In this chapter, you will learn about the concept of CMS and why it is widely accepted in the market.

What Is Content Management System?

Wordpress Content Management System

Content Management System (CMS) can be defined as a tool or software program containing a set of interrelated programs used for creating and managing different digital or online content. Some famous examples of CMS software are Joomla, Drupal, WordPress, TYPO3, etc. The typical use of CMSes are in two areas:

  1. Enterprise Content Management (ECM) and
  2. Web Content Management (WCM)

In the majority of the cases, it can support many users, letting them work in the association. For example, WordPress makes it possible to create many administrative users, where each one has different privileges hence making the work progress in parallel. Content management systems also comprise of text as well as the layout and design features like the facility to upload multimedia content like photos, videos, audio, maps, or even any source code.

Components of Content Management System

A content management system is composed of two major components. These are:

  • A content management application (CMA) is a graphical user interface that allows its users to create, delete, modify, and publish content even without the knowledge of HTML or other programming languages ​​that are necessary to create web pages.
  • A content delivery application (CDA) is responsible for the back-end services. It manages as well as delivers content after framed in the CMA.

Features of Content Management System

  • User Management: This permits the management of user information like the roles of different users allotted to work simultaneously, such as creating or deleting the user, change the username, password, and other related information.
  • ThemeSystem: This allows us to modify the site view as well as functionality using stylesheets, images, and templates.
  • ExtendingPlugins: Different plugins are offered, which gives custom functionalities and features to create the CMS site.
  • SearchEngineOptimization: It is embedded with a lot of search engine optimization (SEO) tools making content SEO more straightforward.
  • MediaManagement: is used for managing the media files and folder, with uploading media contents easy and effortless.
  • Multilingual: Translation of the language, as preferred by the user, is possible through CMS.

Advantages of Content Management System

Wordpress Content Management System

  • Most of the CMS is open source and is available for free.
  • Easy and quick uploading of media files can be done.
  • Several SEO tools make on-site SEO simpler.
  • Easy customization is possible as per the need of the user.
  • It can modify CSS files as per the design needed by the user.
  • Many templates and plugins are available for free. Customization of plugins is also possible.
  • Content editing is also more comfortable as it uses the WYSIWYG editor.

Disadvantages of Content Management System

  • CMS software needs a time-to-time update, and hence the user needs to look out for an updated version.
  • The use of different plugins can make your website heavy and challenging to run.
  • CMS hosting is quite expansive.
  • PHP knowledge is required to modify or change the WordPress website.