My WordPress learning journey, so far…

My WordPress learning journey, so far…

I started to work with WordPress in 2015, while in physics college, just to get some money. At first, as a freelancer, I was just a plugin/theme installer, with no clue about how things worked under the hood.

Over time, I needed to understand how WordPress plugins and themes were hosted, which led me to learn about host companies and set DNS domains, and tasks using CPanel. Later on, I had to work with VPS, hosted by companies like Digital Ocean and AWS. Also, that’s how I learned to work with Apache, NGINX, and Linux servers back in 2016.

WordPress under the hood

Ok, after working on tasks setting up all DNS domains, installing WordPress, connecting with the database, choosing a theme, and installing plugins for clients’ projects, I came to the question: How do those themes and plugins interact with those bunch of WordPress core files downloaded from WordPress.org? To understand that, one of the things I had to learn was PHP, which started in 2016. With PHP knowledge I was able to actually understand WordPress – even wrote an article about that: WordPress under the Hood.

WordPress themes

Despite the amazing themes available for download on WordPress.org, I needed to make websites look beautiful to the client’s eyes and sometimes the projects needed further customizations. That led me to research, learn, and work with WordPress themes. Initially, I learned how to create WordPress child themes, and later on, finally learned to create my own themes – something I am still learning to be honest.

Here are two open-source themes I worked on, you can see here and here.
In the process of creating a WordPress theme, I needed to handle the frontend part, which led me to dive, among other things, into CSS and JavaScript about 6 years ago, in 2017.

CSS

CSS can be very tricky if we underestimate it. If you work alone on a project and everything is still fresh in your head, it’s easy to maintain, but after some time, if you don’t structure things well, it becomes a nightmare to maintain.

When you jump into a project with distributed teams, you must find ways to organize things. After that conclusion, one of the things I started to learn was SCSS, which proved to be great for my needs and my chosen option nowadays. However, compiling all the files took SCSS a lot much time. To increase productivity and get rid of this manual task, I learned Gulp.
Somehow I read that Weppack was more complete but had a bigger learning curve, well, I am not afraid to research, so I learned Webpack, my way to go nowadays.

Here is a Webpack sample I developed to work in a WordPress theme.

JavaScript

JavaScript was also required to create mobile menus and carousels for example. The same problem with CSS arose in JavaScript: compiling and minifying those files used to take so long, here is where Webpack shows up again and is very handy.
Again, my webpack configuration file is here.
Of course, JavaScript is not used only for that, there are a million possible uses, and that’s why something I keep learning and searching (and will do forever).

E-commerce

In 2018, after this journey as a freelancer, I started an e-commerce of pet supplies. The project was and still is based on WordPress and Woo (former WooCommerce). During this time, I faced lots of challenges being the most experienced IT person in the room at some points.
On the e-commerce, aspect, Woo has several amazing plugins to enhance an e-commerce project, but paying for them was not an option back then. At that point, among other tasks, I started to learn how to build plugins.

WordPress plugins

Due to our tiny budget, I had to create our own plugins, like this to customize order status or this other one to create custom post types.

MySQL

What tells about databases? Last year, I worked in server migration, from AWS to Digital Ocean LAMP server, migrating all tables of a WordPress/Woo project, handling errors with data formats, and primary keys, cleaning data that was not needed anymore, optimizing, changing the collation for InnoDB.
I like to use PhpMyAdmin as a tool to handle those MySQL-related tasks.

Coding Standards

There are multiple ways to solve the same problem, also we can organize files differently, but in the open-source world, using standards makes it easier to share your work with others.
Today, I use Composer to manage PHP_CodeSniffer rules like WordPress Coding Standards. I wrote an article about how to set up it correctly.

As a project grows, everyone involved must speak the same language, it will make things way easier and will help with productivity.

React and Next

Yes, I had to learn React to work with WordPress, but that’s a subject for another post, I think.

DevOps

In the WordPress context, deployment is basically synchronizing plugins and theme files to the respective paths.

I used the old approach, syncing files through FTP – which is not a very productive approach let’s be honest – so I started to use automation like GitHub actions for CI/CD.

In this repository, I share some workflow samples to deploy WordPress projects.

My next steps

Right now, in my learning journey, I am focusing on exploring advanced WordPress aspects like Gutenberg Blocks and Block Themes. Also trying to improve my writing test skills with PHPUnit.

Through the years, I got the ability to see the bigger picture. And if got stuck on some problem I don’t know exactly how to solve, I am not afraid to jump in and acquire the needed missing skill. That’s my learning approach, sometimes I get lost banging my head against the wall, but when I finally get why something is happening, that’s my friends is the funny part of this work.

And you? What about your learning journey? Any suggestions about something I need to learn/explore?

Leave a Reply

Your email address will not be published. Required fields are marked *