Most developers have used an API (and more specifically the REST API) in some point in their careers; and a WordPress developer is no exception. We may have used the WordPress REST API for fetching data from a remote WordPress instance, or update some record somewhere with authentication or to create a Headless WordPress site. Perhaps we simply used it within a Gutenberg block.
GraphQL is an alternative to the REST API, and also a great technology. However, using GraphQL with WordPress requires the installation of a new plugin. If you are using GraphQL to merely solve the under-fetching/over-fetching problem for basic queries, you might want to continue reading this post.
WP REST API 101
The easiest way to play with the WP REST API is to visit any WordPress site’s URL followed by /wp-json. I’d recommend a REST client like Postman or Insomnia. In case you do not download these apps, you can visit the URL on your browser. If you go this route, however, I’d recommend an extension to view JSON data. You can find them on your Browser’s extensions library. Taking this site as example, let’s say you visit the following URL:
If you followed the last link, you would have seen a bunch of fields for the latest 10 posts. Let’s say you only need the title, and excerpt. Here comes the key part: you use the _fields URL parameter to limit the fields to just what you want:
The above will only return the posts’ titles and excerpts. This would reduce the load time significantly since it’s much less data as compared to retrieving the entire dataset from the posts endpoint.
Get the full categories, tags, and featured image
Another “limitation” with the REST API is that you cannot see the name or slug of the attached category or tag for a post if you go to the /posts endpoint.
The solution to this is to pass the _embed param to the URL.
The above will give you the terms (categories, tags) used for the posts. Additionally, you will also get the featured image details for the give post. This will save you from making multiple calls to the remote endpoint, thus saving time and money.
Although this is not a full-on nested call like you can do with GraphQL, this is good enough for a lot of use cases.
A note on using _fields and _embed
As you try to use these tips, you would be tempted to use both the _fields and _embeds params in one call. You will notice that it is not possible to do so.
When I tried the above scenario, it returned empty results. So, I followed this solution StackOverflow to get over this roadblock.
TLDR;
Perhaps you are discouraged from using the WP REST API because it fetches fields you do not need. Perhaps it is because the results do not contain the featured image URL or the category/tag name and slug. If so, then you might want to consider sticking to the REST API before looking elsewhere.
I started dabbling with WordPress 10 years ago in 2015.
In that period, there have been changes several changes. Still, there have also been things that have stayed the same.
I’ve learned an important trick; to develop foresight, you need to practice hindsight.
Jane McGonigal
Let’s focus on the fundamentals, first – the things that stood the test of time and will do in future.
We can use WordPress for many purposes. It can serve as a tool builder, like a resumé maker. It can also be a platform or even a billboard. Nevertheless, the fundamental reason we use WordPress is for content.
When we say content, it can mean many things – including Instagram reels or TikToks. However, with WP, content primarily means the written word. That’s what I believe the Word in WordPress stands for.
Although, we can upload and embed videos and images, the power of words is what makes WordPress, well, powerful.
So, it is a ContentManagement System as its core.
The Foundations
Now that we know what WordPress is (a CMS), let’s dive into what you need to learn to become a developer in the short term.
By near term, I mean a quarter of a year. Let’s say you start now; you could hopefully become a Junior WordPress Developer by June 2025.
These are the tools you need to master to get going:
An understanding of the WordPress basics. What is a post and how does it differ from a page? What is a post type? What is a taxonomy? How do I change a theme or install a plugin? And so on.
There is an endless list of questions you may have as you follow through. I recommend you befriend your friendliest AI tool to ask questions and get clarity.
A Development Environment. Avoid working on projects without a dev environment if you can. Do not work on projects with just a single production site where all the work happens. I also recommend having a local WP environment. This way, all your development work is on your computer. You can do this while you are working. LocalWP and Studio by WP.com are both great for beginners.
Think of it this way. Would you be doing carpentry at the location of your customer or at your work shed? I would do it at my work shed or a home office shed (remote work FTW). So, let’s use a local development environment.
Basic Web Development. I would say you should possess the basics of HTML, CSS, and JavaScript. I am not a purist, so w3schools.com is a good resource for learning that. If you happen to be a purist, head over to mdn!
Some backend knowledge. It is also good to know some PHP and MySQL. Or even the basic syntax and ideas are sufficient.
Again, ChatGPT is your friend. Pester it with your questions and test yourself against it.
Intermediate
Now, we are getting to where most developers should get to. However, a lot of them will take a false path. Others will stop with the foundations. For instance, they will still use the Classic Editor. They will rely solely on a Page Builder. They will also stick to store bought themes and plugins without considering any customizations.
WordPress Hooks (filters and actions) 🪝 are an important part of advancing as a WordPress developer. It’s crucial we learn it right – and practice it.
Gutenberg was merged to core in 2018 and there has been a mixed reaction from the community. I believe it is about time (albeit a bit too late) to embrace the block editor with both arms.
There are so many terms when it comes to the block editor. But keeping abreast of the nuances pays off handsomely in the long run.
With that said, let me throw some words:
Blocks – they can be core or custom
Block Patterns
Block Filters
Block Styles
Block Variations
Block Plugins
Block Themes and Full Site Editing
Block Templates
Reusable Blocks
Dynamic Blocks – as opposed to Static Blocks
I do not want to explain here what each means. Nor do I want to be considered an expert in critiquing the decisions that went into its nomenclature. You could learn a ton about these from fullsiteediting.com or through Google / ChatGPT.
You can also learn from wpdevelopment.courses. Please note, it is a paid resource and I am a student of the course. The course helped me a ton to level up in block theme development. And no, I am not being paid to say this.
ES2015+ or ES6 is also a decade old now. And React is 12 years old now; almost a teenager. The reason I mention it is so that we are aware its about time we learned these. So along with learning Gutenberg, it’s essential to also learn modern JS.
Of course, here comes the other essentials like security best practices. Escaping, Sanitizing, Validating – the whole nine yards.
The best way to become great, in my opinion, is to go through the works of the best people in the industry.
For example, reading through WP Core or Gutenberg Core’s code on GitHub, perhaps reading through a major plugin’s code like Google Site Kit, or by contributing to core and other open source software yourself.
An obvious way to get advanced is by working on large site rebuilds or plugins that touch many sites and has great impact.
Closing Thoughts
Do not forget about the community.
You would be doing yourself a great favor by participating in dialog with the WordPress community, over on Twitter or at local events such as Meetups and WordCamps. A friend I made at a meetup 10 years ago is my almost like a mentor now!
Of course, when you get to the advanced level, it’s good to contribute back to WordPress in the form of code, events, teaching, encouraging, documenting, organizing, volunteering, and so on.
So, how do I get started?
It depends on what you want to achieve with WordPres.
If I were to give you one call to action, it would be that you register as a member of WordPress.org – you will hopefully look back and thank yourself that you did so.
The more important CTA, however, is to head over learn.wordpress.org and choose your path!
Closing Thoughts
I initially set out to write about the WordPress ecosystem—the so-called bubble where outsiders often dismiss WordPress developers as “not real developers.” Instead of merely highlighting a problem, I decided to offer a solution: a practical roadmap to becoming a proficient WordPress developer. I hope this approach provides real value and inspires you to embrace the journey ahead.
A brief introduction to Gutenberg and its purpose of existence
Introducing the Gutenberg Developer and their skillset
How to become a Gutenberg Developer
Gutenberg, which started off as the codename for the new WordPress Block Editor has been used to define many things. The new editor has been built to replace the previously used TinyMCE editor which has been in WordPress for a long time. Gutenberg started off as a plugin and was merged into WP core in WordPress 5.0 which was 5 years ago. Time flies, right?
Coming back to the point. Gutenberg has been used to define the following items:
The plugin that was built to replace the “Classic Editor” also known as the TinyMCE editor. Unfortunately, it has a very low rating on the WordPress plugin repository. As a developer, it’s difficult to understand the hate for this plugin, but it is what it is.
The “content editor” which replaced the post/page editor which was using TinyMCE.
The Full Site Editor also known as the “site editor”.
Now, Gutenberg has 4 phases:
Content Editing, which was started in 2018 with WP 5.0
Site Customization, which started last year with WP 5.9
Collaborative Editing which is being worked upon
Multilingual Support which is scheduled next
Replacement for page builders?
Although it did not start off as as replacement for page builders when first released, it has become so. Since the site editor allows you to replace every bit of the site using blocks, isn’t Gutenberg essentially another page builder? That’s what I believe so. It’s not “just another” page builder. But it is the de facto page builder that is built by the team building WordPress core. In other words, if you want to use the default way of page building / site building, you are best off choosing Gutenberg,
Atomic in nature?
Another important point we must realize is that Gutenberg has atomized the aspects of site building. The idea is that the site is broken down into smaller and smaller pieces of blocks until you get to the smallest “single block”.
A group of blocks can be categorized as the following:
Block Pattern (synced and unsynced)
Block Template Parts
Block Themes
I first saw this idea in WordPress, but other CMSs (primarily Headless CMSs) also have adapted this idea of slicing up the site into atomic pieces or blocks (as referred to in WordPress).
Gutenberg Developer 101
This is a popular job role within the WordPress space. It is still a hot and trendy job title although it’s been over 5 years since we first heard of Gutenberg. So, what makes up a Gutenberg Developer? Let’s find out!
I created this Venn Diagram to represent what I believe makes up a Gutenberg Developer.
It essentially comprises of the skills of the following 3 job roles:
WordPress Developer
React Developer
Frontend Developer
You might think that’s a lot of things to learn just to be able to do one job role. Well, that is not the case so!
How do I say that?
For example, if you have rudimentary WordPress skills, but are very good at React, you can still do a lot by reading about the Gutenberg documentation and learning the WP REST API as well as brushing up on CSS.
If you are a WordPress expert, but have basic React skills, that’s more than enough. Because building blocks requires little React knowledge to get started.
Likewise, if you are a frontend developer strong in CSS and JS, you might have to learn some React and the WordPress knowledge necessary to build blocks or a block theme.
In other words, you do not need to ace all 3 of these roles just to be able to build with Gutenberg.
So, what skills do you need to get there?
Gutenberg Developer skills
Matt Mullenweg said in 2015, “Learn JavaScript Deeply”. It still stands true. You need to know JavaScript. I believe most WordPress developers and Frontend Developers already know JS. React Developers definitely know it since React is a JS library.
Apart from JS knowledge you might need these core skills to work with Gutenberg:
React
Some basic build config knowledge like webpack and friends
PHP
HTML + CSS
JSON
How do I learn to become a Gutenberg Developer?
There a few aspects to becoming a Gutenberg Developer.
For example, you can build individual blocks or be able to build block themes, or plugins that house multiple blocks to solve specific problems.
For example, the Jetpack plugin uses an array of blocks to solve niche problems with content creation. Twenty Twenty Four is an example of a block theme – a theme built entirely out of blocks.
There are a few resources I can recommend to learn these:
The Block Theme Academy by Fränk Klein – this is an awesome set of courses to be able to build out block themes, the right way.
I have taken both these courses and have found them to be very helpful.
Getting a job as a Gutenberg Developer
There are many companies hiring for this role. WordPress development agencies look for these folks with this skillset as they need to build client sites and apps that make use of Gutenberg.
So are product companies looking for these roles. Product companies need to “blockify” their products sooner or later. If their products do not play nicely with the block editor, it could mean death to their product as more and more users adopt the new block editor and move away from the Classic Editor.
Theme shops also need Guetenberg Developers as they start to replace classic themes with either hybrid themes or block themes.
Mindset of a Gutenberg Developer
As Gutenberg Developers, we need to think of future/modern WordPress sites as pieces of a blocks inside blocks inside blocks, up until we reach a single block.
What makes up a block? They can be made using PHP or JS. The editor side is mostly written using React. The frontend uses a React-like structure, but is not, in fact, React that powers it. It gets serialized to HTML. You can also use PHP to replace the frontend code, which I quite like because of the power of PHP within the context of WordPress. I will stop here because speaking at length about this topic is cannot be covered in a single blog post.
Having said that, it’s important to decide which language to use where. You can even use React by enqueueing it to the fronend and make use of its dynamic nature to build complex UIs. However, it’s better to use PHP and vanilla JS as much as possible before reaching out to React for the frontend.
If you have read up to this point and want to become a Gutenberg Developer, here are some steps you can take:
Learn as much as possible from the courses and resources listed above.
Build out a simple block using block.json. This is a helpful tutorial.
Build more blocks!
Build out a basic block theme
Apply for jobs
???
Profit
Let’s keep in touch!
I hope you found this piece helpful. Let me know if you’d like me to cover another similar topic, or something else you’d like to read!
If you have questions about blocks or block themes or want to get in touch with me, feel free to reach out! I am also active on X and LinkedIn if you want to follow me over there. I also provide consultancy as a Gutenberg Developer, so feel free to get in touch!
Thought of putting out something short as a way to practice my writing. I wrote this without research ormuch planning, but I hope it will help someone out there.
WordPress is a handy blogging tool, a useful Content Management System or a capable web application framework. Whatever way you look at it, WordPress helps you solve problems in creative ways. In this article, I want to talk about how I approach projects and my methodology for problem-solving with WordPress. This is not an exhaustive list and one article wouldn’t do justice to the vastness of WordPress. I will try to add whatever pointers stand out among the decisions you would probably have to take.