Explanation of how I developed this blog from scratch without having any resources (except my hands and my head).

It is difficult to create a theme from scratch in a short period of time. However, with the correct methodology and the tools that can accelerate the development, making a theme in a week is perfectly possible.

This post is a fast translation from the original one in spanish.

What’s so special about WordPress?

It can be stated that WordPress is the world’s most popular CMS. The reason for this lies in the unique combination of simplicity and power of its editing system, combined with the extensive configuration options provided by the multiple plugins and themes available. Based on these premises, an loyal fanbase has been built up. The technologies on which the platform works are:

  1. PHP as a programming language for web server.
  2. MySQL as a database.

Both technologies are popular in the open source community, which in turn develops a lot of the extensions. The union of the interests of both parties, has generated very positive synergies. This has been one of the reasons for adopting the platform in this project.

WordPress Elements

For the user, the center of WordPress benefits is that any change can be made with its online editing tool: the WordPress admin. When someone enters the Dashboard it finds a screen of this style:

In the left menu we can fin the different editing options:

  1. Posts
  2. Media
  3. Pages
  5. Appearance
  6. Plugins
  7. Users
  8. Tools
  9. Settings

Note: Contact is an option that a plugin added, that’s why I’m not going to describe it.

The place within the Admin where blog posts are created, edited or deleted.

The WordPress content editor (Gutenberg as of version 5), enables the hybrid experience of working with a word processor and a web page editor.

Place where images and the other resource files that are used on the site can be uploaded. Avoids the need to use external tools such as FTP clients.

A page is just a type of post. Removal, editiion and creation is the same as editing posts.

List of the user comments made in the posts, in the case of this blog, I won’t allow comments for the time being.

The section where the themes are installed and configured. Menus, widgets and other configuration options of the page are in here too.
This is where WordPress is configured to use our theme.

It enables to radically change the design of a site using the appropriate theme.
In addition, using the interactive viewer, we can adjust various design options. For example, to adjust the logo:
Menu options

The Plugins section is one of the highlights of WordPress: with the right plugin (or combination of plugins) we can add features for both the site and the WordPress Admin. There are several examples on this site like the contact page, I didn’t have to program anything, just used two Plugins.

  1. One to create the form just by setting some values.
  2. Another one to send emails, since my free hosting has very limited services (which don’t include sending emails).

The site isn’t earning a penny, so I can’t afford to spend either (for now, at least). Later, I plan to write an article about how to make a decent site using free services. For the interesting links section I had to define a widget area (see below). But I solved almost everything by using three plugins:

  1. One shows, through a link to an external URL, “cards” with a summary of the content of that site.
  2. Another one to display a list of posts in a widget area.
  3. A third one to filter the posts shown on the list.

Section that allows users to add, delete and edit the users. It is a key feature to allow team collaboration. In addition, assigning roles with different permissions: some may have access only to write their posts, others may also alter the entire appearance of the site, etc.

By default, I don’t use this part too much. However, it’s often used by plugins to add options to the Admin.

It’s used to change the configuration options of the site. Things like the language, who can comment or the amount of posts shown in the main feed list.