Articles & Tutorials
Check out the latest articles about WordPress development tips and techniques.
Building a Custom Block Part 8: Restricting Inner Blocks
In Part 8 of Building a Custom Block, we’ll restrict which blocks can be inserted inside our Notice block and use template locking to enforce a consistent inner block structure.
Building a Custom Block Part 7: Styling Inner Blocks
In Part 7 of Building a Custom Block, we’ll add default styles to the inner blocks inside our Notice block while making sure they remain fully customizable in the block editor.
Building a Custom Block Part 6: Block Variations
In Part 6 of Building a Custom Block, we’ll use the Block Variations API to create preconfigured versions of our Notice block. Instead of inserting a generic notice and then picking a style, users will be able to drop in a ready-to-go “Error Notice” or “Success Notice” directly from the block inserter.
Building a Custom Block Part 5: Adding Block Styles
In Part 5 of Building a Custom Block, we’ll use the Block Styles API to register different visual styles for our Notice block that represent common notice types: info, success, warning, and error.
Building a Custom Block Part 4: Adding Styles and Custom Interactivity
In Part 4, we’ll make our Notice block actually look and act like a notice. We’ll add some baseline CSS to style the block and then write frontend JavaScript in view.js to handle dismissing the notice when users click that close button we added in Part 3.
Building a Custom Block Part 3: Inner Blocks and Inspector Controls
In Part 3 of Building a Custom Block, we’ll update our Edit component to support child blocks (InnerBlocks) and add our own custom Inspector Controls to toggle the dismiss button.
Building a Custom Block Part 2: Attributes and Supports
In Part 2 of Building a Custom Block, we’ll go through adding block supports and attributes and explore how they work in some more detail.
Building a Custom Block Part 1: Scaffolding block files
In Part 1 of the Building a custom block series, we look at how you can quickly set up a new custom block from scratch using the create-block package provided by WordPress and the anatomy of a block.
How to set up @wordpress/scripts
The @wordpress/scripts package makes it easy to bundle your JavaScript for a plugin or theme and is especially helpful when developing custom blocks. In this post, I’ll show you how you can easily set up @wordpress/scripts and take advantage of the dependency management benefits it offers.
How to add a gradient text effect to specific words in a block
Gradient text effects are pretty nifty and can add a nice element of visual flair to your posts (if I do say so myself). Adding this effect is pretty easy with CSS, but what if you want to only apply it to certain words inside a paragraph, heading, or similar block? In this post I’ll…
4 new essential modern CSS features for WordPress Development
CSS has been around for a while, but modern features are being added faster than ever. In this post, I’ll show you 4 essential CSS capabilities: color manipulation, smart selectors, container queries, and aspect-ratio that will save you time and effort on your WordPress projects, with no JavaScript or complex workarounds required.
How to set up custom fonts in block themes
In this post I’ll show you how you can easily add Google Fonts or your own custom fonts to a block theme and how you can customize the generated @font-face rules if needed.
How to add multiple block areas to a single block theme template
In this post I’ll show you how you can add multiple post-specific block areas to a single template in a block theme. I’ll explain when you may want to do this as well as the technical reasons why it needs to be done a certain way.
How to easily parse and alter HTML markup with WP_HTML_Tag_Processor
When you’re building with WordPress you will almost definitely need to modify HTML output at some point or other. This type of thing is pretty easy to do with JavaScript (which is pre-built with tools for manipulating the DOM) but historically it’s been much more challenging when using PHP. In this post I’ll show you…
How to use Dependency Extraction in webpack to make your scripts smaller
WordPress makes it really easy to reduce the size of your scripts when you’re using common packages. In this post, I’ll show you how Dependency Extraction works and how you can use it even if you’re not using @wordpress/scripts.
Setting up a child theme for hybrid or block themes
If you’ve been building with WordPress in the past, you may have used or heard of a “child theme” before. In this post I explain how child themes work and why you may (or may not) need one for your project.
4 new habits for adding stylesheets and scripts to WordPress
WordPress has some great new features and development patterns to help you get the most out of the stylesheets and scripts you’re adding to your pages. In this post I’ll show you 4 new habits to simplify enqueueing styles and scripts on your WordPress site.
How to get a list of posts in the block editor
If you’re building a custom block that renders a list of posts, you’ll need a way to get those posts! I’ll cover the pros and cons of each so you can choose the right approach for your situation when it comes up.
Add Custom CSS Variables in theme.json
If you’ve worked with the block or site editor you’ve probably noticed that WordPress generates CSS variables based on what you enter in theme.json. This includes things like your color palette, spacing values, font sizes, font families, and more. In this post I’ll show you how you can add your own custom CSS variable definitions…
How to build custom blocks in your WordPress theme
If you’re just getting into block development, deciding where to build your custom blocks can be confusing. Much of the documentation from wordpress.org suggests using a plugin, but in the past you probably stored reusable components directly in your theme. In this blog post, I’ll break down why you probably want to store your custom
How to easily set up Webpack for a WordPress theme with 10up-toolkit
In a modern WordPress theme (or any frontend project) one of your first steps is setting up tooling. There are numerous tools to use, but if you’ve done this before you probably have used (or heard of) Webpack. If you haven’t, I’ll explain below. In this article, I’ll show you how you can easily leverage
Add autocomplete to your theme.json file
The functionality of theme.json has been constantly expanding since the feature was introduced in WordPress version 5.8. This means there are always new things being added, but that also means there’s a whole lot to remember! In this post, we’ll talk about a one-line solution to add autocomplete and hinting to your WordPress theme’s theme.json
How Alignments Work in Gutenberg
Alignments are a key concept that helps you create dynamic blocks with varying container sizes. In this blog post, I break down how alignments work in Gutenberg and share some tips you can use to leverage this capability to write more maintainable themes and build unique interfaces quickly.